Cygwin: FIFO: add a spinlock
Don't let listen_client_thread and raw_read access the client list simultaneously.
This commit is contained in:
		
				
					committed by
					
						 Corinna Vinschen
						Corinna Vinschen
					
				
			
			
				
	
			
			
			
						parent
						
							48d4cce3be
						
					
				
				
					commit
					c75e077f99
				
			| @@ -1267,6 +1267,7 @@ class fhandler_fifo: public fhandler_base | ||||
|   WCHAR pipe_name_buf[CYGWIN_FIFO_PIPE_NAME_LEN + 1]; | ||||
|   fifo_client_handler client[MAX_CLIENTS]; | ||||
|   int nclients, nconnected; | ||||
|   af_unix_spinlock_t _fifo_client_lock; | ||||
|   bool __reg2 wait (HANDLE); | ||||
|   NTSTATUS npfs_handle (HANDLE &); | ||||
|   HANDLE create_pipe_instance (bool); | ||||
| @@ -1278,6 +1279,8 @@ public: | ||||
|   fhandler_fifo (); | ||||
|   PUNICODE_STRING get_pipe_name (); | ||||
|   DWORD listen_client_thread (); | ||||
|   void fifo_client_lock () { _fifo_client_lock.lock (); } | ||||
|   void fifo_client_unlock () { _fifo_client_lock.unlock (); } | ||||
|   int open (int, mode_t); | ||||
|   off_t lseek (off_t offset, int whence); | ||||
|   int close (); | ||||
|   | ||||
		Reference in New Issue
	
	Block a user