CVS: winex/scheduler synchro.c,1.21,1.22
[email protected] 31 Jul 2007 17:59:33 -0000
| Newsgroups | gmane.comp.emulators.winex.cvs |
|---|---|
| Message-ID | <[email protected]> |
Subject: winex/scheduler synchro.c,1.21,1.22Update of /var/lib/cvsd/cvsroot/winex/scheduler
In directory agravaine:/tmp/cvs-serv24402/scheduler
Modified Files:
synchro.c
Log Message:
Partially implement IO completion ports to the point that they can be used as task queues (ie, not associated with a file handle). Still to be done:
- finish thread accounting for blocking
- implement associating a file handle with an IO completion port
- modify relevant functions to send notifications to an associated IO completion port
- lots of testing of corner cases
Index: synchro.c
===================================================================
RCS file: /var/lib/cvsd/cvsroot/winex/scheduler/synchro.c,v
retrieving revision 1.21
retrieving revision 1.22
diff -u -d -r1.21 -r1.22
--- synchro.c 28 Mar 2007 17:50:36 -0000 1.21
+++ synchro.c 31 Jul 2007 17:59:31 -0000 1.22
@@ -111,11 +111,11 @@
/***********************************************************************
- * wait_reply
+ * wait_server_reply
*
* Wait for a reply on the waiting pipe of the current thread.
*/
-static int wait_reply( const void *cookie )
+int wait_server_reply( const void *cookie )
{
int signaled;
struct wake_up_reply reply;
@@ -132,7 +132,7 @@
if (reply.cookie == cookie) return reply.signaled;
TRACE( "Stole cookie reply.cookie=%p\n", reply.cookie );
/* we stole another reply, wait for the real one */
- signaled = wait_reply( cookie );
+ signaled = wait_server_reply( cookie );
/* and now put the wrong one back in the pipe */
for (;;)
{
@@ -301,7 +301,7 @@
(ret == STATUS_TIMEOUT || ret == STATUS_PENDING) )
{
TRACE( "Hmmm. Actually have wait race\n" );
- ret = wait_reply( cookie );
+ ret = wait_server_reply( cookie );
}
}
@@ -376,7 +376,7 @@
}
SERVER_END_REQ;
- if (ret == STATUS_PENDING) ret = wait_reply( &cookie );
+ if (ret == STATUS_PENDING) ret = wait_server_reply( &cookie );
if (ret != STATUS_SUCCESS) *code = -1;
return ret;
}
@@ -520,7 +520,7 @@
}
SERVER_END_REQ;
- if (ret == STATUS_PENDING) ret = wait_reply( &cookie );
+ if (ret == STATUS_PENDING) ret = wait_server_reply( &cookie );
if (ret != STATUS_USER_APC) break;
call_apcs( alertable );
if (alertable) break;