Make timeouts work more reliably

git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@20098 72102866-910b-0410-8b05-ffd578937521
This commit is contained in:
Richard Frith-Macdonald 2004-09-21 13:43:10 +00:00
parent 7de873c1d6
commit cc6f31ceb4
2 changed files with 8 additions and 2 deletions

View file

@ -1,3 +1,7 @@
2004-09-21 Richard Frith-Macdonald <rfm@gnu.org>
* Source/NSConnection.m: ([_getReplyRmc:]) improve timeout code.
2004-09-20 Richard Frith-Macdonald <rfm@gnu.org>
* Source/NSProxy.m: minor hash optimisation

View file

@ -2703,7 +2703,8 @@ static void callEncoder (DOContext *ctxt)
* of the loop.
*/
if ([runLoop runMode: NSConnectionReplyMode
beforeDate: limit_date] == NO)
beforeDate: limit_date] == NO
|| [timeout_date timeIntervalSinceNow] <= 0.0)
{
if (limit_date == timeout_date)
{
@ -2719,7 +2720,8 @@ static void callEncoder (DOContext *ctxt)
* Normal operation - wait for data or for a timeout.
*/
if ([runLoop runMode: NSConnectionReplyMode
beforeDate: timeout_date] == NO)
beforeDate: timeout_date] == NO
|| [timeout_data timeIntervalSinceNow] <= 0.0)
{
M_LOCK(_queueGate); isLocked = YES;
node = GSIMapNodeForKey(_replyMap, (GSIMapKey)sn);