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:
parent
826fee4c6d
commit
b421423c77
2 changed files with 5 additions and 6 deletions
|
@ -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)) {
|
||||
|
|
|
@ -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
|
||||
|
|
Loading…
Reference in a new issue