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
*/
switch(function) {
case SENDREC:
flags |= FRESH_ANSWER; /* ignore pending notifications */
case SENDREC: /* has FRESH_ANSWER flags */
/* fall through */
case SEND:
if (! isalive(src_dst)) {

View file

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