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
					
				@ -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…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user