mirror of
https://github.com/gnustep/libs-base.git
synced 2025-06-01 09:02:01 +00:00
Tweaks to NSConnection
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@11089 72102866-910b-0410-8b05-ffd578937521
This commit is contained in:
parent
abec1ee0ed
commit
32cbf526c6
6 changed files with 674 additions and 550 deletions
|
@ -1,3 +1,12 @@
|
||||||
|
2001-10-06 Richard Frith-Macdonald <rfm@gnu.org>
|
||||||
|
|
||||||
|
* Source/NSConnection.m: Increase default timeouts to max value.
|
||||||
|
Improve algorithm for polling for messages when waiting for a reply
|
||||||
|
in multithreaded mode ... use fibonacci sequence for delays rather
|
||||||
|
than doubling each time.
|
||||||
|
* Headers/Foundation/NSConnection.h: Remove default timeout constant.
|
||||||
|
* configure.in: Check for float.h, not for values.h
|
||||||
|
|
||||||
2001-10-05 Richard Frith-Macdonald <rfm@gnu.org>
|
2001-10-05 Richard Frith-Macdonald <rfm@gnu.org>
|
||||||
|
|
||||||
* NSTimeZones/NSTimeZones.tar: Updated to latest info.
|
* NSTimeZones/NSTimeZones.tar: Updated to latest info.
|
||||||
|
|
|
@ -232,8 +232,6 @@ GS_EXPORT NSString *ConnectionBecameInvalidNotification;
|
||||||
|
|
||||||
@end
|
@end
|
||||||
|
|
||||||
#define CONNECTION_DEFAULT_TIMEOUT 15.0 /* in seconds */
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* NSRunLoop mode, NSNotification name and NSException strings.
|
* NSRunLoop mode, NSNotification name and NSException strings.
|
||||||
*/
|
*/
|
||||||
|
|
|
@ -64,6 +64,9 @@
|
||||||
/* Define if you have this header */
|
/* Define if you have this header */
|
||||||
#undef HAVE_GICONV_H
|
#undef HAVE_GICONV_H
|
||||||
|
|
||||||
|
/* Define if you have this function */
|
||||||
|
#undef HAVE_ICONV
|
||||||
|
|
||||||
/* The number of bytes in a double. */
|
/* The number of bytes in a double. */
|
||||||
#undef SIZEOF_DOUBLE
|
#undef SIZEOF_DOUBLE
|
||||||
|
|
||||||
|
@ -172,6 +175,9 @@
|
||||||
/* Define if you have the <dirent.h> header file. */
|
/* Define if you have the <dirent.h> header file. */
|
||||||
#undef HAVE_DIRENT_H
|
#undef HAVE_DIRENT_H
|
||||||
|
|
||||||
|
/* Define if you have the <float.h> header file. */
|
||||||
|
#undef HAVE_FLOAT_H
|
||||||
|
|
||||||
/* Define if you have the <getopt.h> header file. */
|
/* Define if you have the <getopt.h> header file. */
|
||||||
#undef HAVE_GETOPT_H
|
#undef HAVE_GETOPT_H
|
||||||
|
|
||||||
|
@ -280,9 +286,6 @@
|
||||||
/* Define if you have the <utime.h> header file. */
|
/* Define if you have the <utime.h> header file. */
|
||||||
#undef HAVE_UTIME_H
|
#undef HAVE_UTIME_H
|
||||||
|
|
||||||
/* Define if you have the <values.h> header file. */
|
|
||||||
#undef HAVE_VALUES_H
|
|
||||||
|
|
||||||
/* Define if you have the <wchar.h> header file. */
|
/* Define if you have the <wchar.h> header file. */
|
||||||
#undef HAVE_WCHAR_H
|
#undef HAVE_WCHAR_H
|
||||||
|
|
||||||
|
|
|
@ -27,6 +27,9 @@
|
||||||
|
|
||||||
#include <config.h>
|
#include <config.h>
|
||||||
#include <base/preface.h>
|
#include <base/preface.h>
|
||||||
|
#ifdef HAVE_FLOAT_H
|
||||||
|
#include <float.h>
|
||||||
|
#endif
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Setup for inline operation of pointer map tables.
|
* Setup for inline operation of pointer map tables.
|
||||||
|
@ -820,8 +823,11 @@ static BOOL multi_threaded = NO;
|
||||||
{
|
{
|
||||||
_multipleThreads = NO;
|
_multipleThreads = NO;
|
||||||
_independentQueueing = NO;
|
_independentQueueing = NO;
|
||||||
_replyTimeout = CONNECTION_DEFAULT_TIMEOUT;
|
#ifndef DBL_MAX
|
||||||
_requestTimeout = CONNECTION_DEFAULT_TIMEOUT;
|
#define DBL_MAX 100000000.0
|
||||||
|
#endif
|
||||||
|
_replyTimeout = DBL_MAX;
|
||||||
|
_requestTimeout = DBL_MAX;
|
||||||
/*
|
/*
|
||||||
* Set up request modes array and make sure the receiving port
|
* Set up request modes array and make sure the receiving port
|
||||||
* is added to the run loop to get data.
|
* is added to the run loop to get data.
|
||||||
|
@ -2369,7 +2375,8 @@ static void callEncoder (DOContext *ctxt)
|
||||||
NSPortCoder *rmc;
|
NSPortCoder *rmc;
|
||||||
GSIMapNode node;
|
GSIMapNode node;
|
||||||
NSDate *timeout_date = nil;
|
NSDate *timeout_date = nil;
|
||||||
NSTimeInterval delay_interval = 0.0001;
|
NSTimeInterval last_interval = 0.0001;
|
||||||
|
NSTimeInterval delay_interval = last_interval;
|
||||||
NSDate *delay_date = nil;
|
NSDate *delay_date = nil;
|
||||||
NSRunLoop *runLoop = [runLoopClass currentRunLoop];
|
NSRunLoop *runLoop = [runLoopClass currentRunLoop];
|
||||||
|
|
||||||
|
@ -2389,7 +2396,8 @@ static void callEncoder (DOContext *ctxt)
|
||||||
}
|
}
|
||||||
if (_multipleThreads == YES)
|
if (_multipleThreads == YES)
|
||||||
{
|
{
|
||||||
NSDate *limit_date;
|
NSDate *limit_date;
|
||||||
|
NSTimeInterval next_interval;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* If multiple threads are using this connections, another
|
* If multiple threads are using this connections, another
|
||||||
|
@ -2401,7 +2409,9 @@ static void callEncoder (DOContext *ctxt)
|
||||||
*/
|
*/
|
||||||
RELEASE(delay_date);
|
RELEASE(delay_date);
|
||||||
delay_date = [dateClass allocWithZone: NSDefaultMallocZone()];
|
delay_date = [dateClass allocWithZone: NSDefaultMallocZone()];
|
||||||
delay_interval *= 2;
|
next_interval = last_interval + delay_interval;
|
||||||
|
last_interval = delay_interval;
|
||||||
|
delay_interval = next_interval;
|
||||||
delay_date
|
delay_date
|
||||||
= [delay_date initWithTimeIntervalSinceNow: delay_interval];
|
= [delay_date initWithTimeIntervalSinceNow: delay_interval];
|
||||||
|
|
||||||
|
|
|
@ -462,9 +462,9 @@ AC_HEADER_STDC
|
||||||
AC_CHECK_HEADERS(string.h memory.h)
|
AC_CHECK_HEADERS(string.h memory.h)
|
||||||
|
|
||||||
#--------------------------------------------------------------------
|
#--------------------------------------------------------------------
|
||||||
# Following header check needed BinaryCStream.h
|
# Following header check needed NSConnection.h
|
||||||
#--------------------------------------------------------------------
|
#--------------------------------------------------------------------
|
||||||
AC_CHECK_HEADERS(values.h)
|
AC_CHECK_HEADERS(float.h)
|
||||||
|
|
||||||
#--------------------------------------------------------------------
|
#--------------------------------------------------------------------
|
||||||
# Header files and functions for files and filesystems
|
# Header files and functions for files and filesystems
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue