* 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> | ||||
|  | ||||
| 	* 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); | ||||
|       break; | ||||
|     default: | ||||
|       switch ((int) pc.dev) | ||||
|       switch ((DWORD) pc.dev) | ||||
| 	{ | ||||
| 	case FH_CONSOLE: | ||||
| 	case FH_CONIN: | ||||
|   | ||||
| @@ -134,6 +134,7 @@ fhandler_console::set_unit () | ||||
| { | ||||
|   bool created; | ||||
|   fh_devices devset; | ||||
|   lock_ttys here; | ||||
|   if (shared_console_info) | ||||
|     { | ||||
|       fh_devices this_unit = dev (); | ||||
| @@ -152,10 +153,7 @@ fhandler_console::set_unit () | ||||
|       shared_console_info = open_shared_console (me, cygheap->console_h, created); | ||||
|       ProtectHandleINH (cygheap->console_h); | ||||
|       if (created) | ||||
| 	{ | ||||
| 	  lock_ttys here; | ||||
| 	  shared_console_info->tty_min_state.setntty (DEV_CONS_MAJOR, console_unit (me)); | ||||
| 	} | ||||
| 	shared_console_info->tty_min_state.setntty (DEV_CONS_MAJOR, console_unit (me)); | ||||
|       devset = (fh_devices) shared_console_info->tty_min_state.getntty (); | ||||
|     } | ||||
|  | ||||
|   | ||||
		Reference in New Issue
	
	Block a user