SENDREC now always has flag FRESH_ANSWER to prevent pending notifications

to be used as answer to a SENDREC call.
This commit is contained in:
Jorrit Herder 2005-05-30 11:11:40 +00:00
parent 826fee4c6d
commit b421423c77
2 changed files with 5 additions and 6 deletions

View file

@ -148,8 +148,7 @@ message *m_ptr; /* pointer to message in the caller's space */
* - ECHO: the message directly will be echoed to the sender * - ECHO: the message directly will be echoed to the sender
*/ */
switch(function) { switch(function) {
case SENDREC: case SENDREC: /* has FRESH_ANSWER flags */
flags |= FRESH_ANSWER; /* ignore pending notifications */
/* fall through */ /* fall through */
case SEND: case SEND:
if (! isalive(src_dst)) { if (! isalive(src_dst)) {

View file

@ -5,10 +5,10 @@
ECHO = 0 ECHO = 0
SEND = 1 SEND = 1
RECEIVE = 2 RECEIVE = 2
BOTH = 3 SENDREC = 3 + 32 ! flags 0x20 to request fresh answer
NOTIFY = 4 NOTIFY = 4
NB_SEND = 1 + 16 ! SEND | 0xF0 NB_SEND = 1 + 16 ! flags 0x10 to prevent blocking
NB_RECEIVE = 2 + 16 ! RECEIVE | 0xF0 NB_RECEIVE = 2 + 16 ! flags 0x10 to prevent blocking
SYSVEC = 33 ! trap to kernel SYSVEC = 33 ! trap to kernel
SRC_DST = 8 ! source/ destination process SRC_DST = 8 ! source/ destination process
@ -75,7 +75,7 @@ __sendrec:
push ebx push ebx
mov eax, SRC_DST(ebp) ! eax = dest-src mov eax, SRC_DST(ebp) ! eax = dest-src
mov ebx, MESSAGE(ebp) ! ebx = message pointer mov ebx, MESSAGE(ebp) ! ebx = message pointer
mov ecx, BOTH ! _sendrec(srcdest, ptr) mov ecx, SENDREC ! _sendrec(srcdest, ptr)
int SYSVEC ! trap to the kernel int SYSVEC ! trap to the kernel
pop ebx pop ebx
pop ebp pop ebp