* dtable.cc (fh_alloc): Treat pc.dev as unsigned.
* fhandler_console.cc (fhandler_console::set_unit): Use lock always to avoid races between competing cygwin processes running on the console.
This commit is contained in:
		| @@ -1,3 +1,9 @@ | |||||||
|  | 2012-03-10  Christopher Faylor  <me.cygwin2012@cgf.cx> | ||||||
|  |  | ||||||
|  | 	* dtable.cc (fh_alloc): Treat pc.dev as unsigned. | ||||||
|  | 	* fhandler_console.cc (fhandler_console::set_unit): Use lock always to | ||||||
|  | 	avoid races between competing cygwin processes running on the console. | ||||||
|  |  | ||||||
| 2012-03-09  Corinna Vinschen  <corinna@vinschen.de> | 2012-03-09  Corinna Vinschen  <corinna@vinschen.de> | ||||||
|  |  | ||||||
| 	* hookapi.cc (find_first_notloaded_dll): Fix a compiler warning. | 	* hookapi.cc (find_first_notloaded_dll): Fix a compiler warning. | ||||||
|   | |||||||
| @@ -478,7 +478,7 @@ fh_alloc (path_conv& pc) | |||||||
|       fh = cnew (fhandler_console, pc.dev); |       fh = cnew (fhandler_console, pc.dev); | ||||||
|       break; |       break; | ||||||
|     default: |     default: | ||||||
|       switch ((int) pc.dev) |       switch ((DWORD) pc.dev) | ||||||
| 	{ | 	{ | ||||||
| 	case FH_CONSOLE: | 	case FH_CONSOLE: | ||||||
| 	case FH_CONIN: | 	case FH_CONIN: | ||||||
|   | |||||||
| @@ -134,6 +134,7 @@ fhandler_console::set_unit () | |||||||
| { | { | ||||||
|   bool created; |   bool created; | ||||||
|   fh_devices devset; |   fh_devices devset; | ||||||
|  |   lock_ttys here; | ||||||
|   if (shared_console_info) |   if (shared_console_info) | ||||||
|     { |     { | ||||||
|       fh_devices this_unit = dev (); |       fh_devices this_unit = dev (); | ||||||
| @@ -152,10 +153,7 @@ fhandler_console::set_unit () | |||||||
|       shared_console_info = open_shared_console (me, cygheap->console_h, created); |       shared_console_info = open_shared_console (me, cygheap->console_h, created); | ||||||
|       ProtectHandleINH (cygheap->console_h); |       ProtectHandleINH (cygheap->console_h); | ||||||
|       if (created) |       if (created) | ||||||
| 	{ | 	shared_console_info->tty_min_state.setntty (DEV_CONS_MAJOR, console_unit (me)); | ||||||
| 	  lock_ttys here; |  | ||||||
| 	  shared_console_info->tty_min_state.setntty (DEV_CONS_MAJOR, console_unit (me)); |  | ||||||
| 	} |  | ||||||
|       devset = (fh_devices) shared_console_info->tty_min_state.getntty (); |       devset = (fh_devices) shared_console_info->tty_min_state.getntty (); | ||||||
|     } |     } | ||||||
|  |  | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user