Fix Plink, the serial backend, and local-proxy support on Win98SE (at least),
authorjacob <jacob@cda61777-01e9-0310-a592-d414129be87e>
Sun, 21 Jan 2007 23:34:35 +0000 (23:34 +0000)
committerjacob <jacob@cda61777-01e9-0310-a592-d414129be87e>
Sun, 21 Jan 2007 23:34:35 +0000 (23:34 +0000)
which have been broken since r6797.
(At least some versions of Win9x are gratuitously picky about the arguments to
CreateThread(), requiring lpThreadId not to be NULL.)

git-svn-id: svn://svn.tartarus.org/sgt/putty@7132 cda61777-01e9-0310-a592-d414129be87e

windows/winhandl.c

index b5f0b85..f515ee5 100644 (file)
@@ -332,6 +332,7 @@ struct handle *handle_input_new(HANDLE handle, handle_inputfn_t gotdata,
                                void *privdata, int flags)
 {
     struct handle *h = snew(struct handle);
+    DWORD in_threadid; /* required for Win9x */
 
     h->output = FALSE;
     h->u.i.h = handle;
@@ -349,7 +350,7 @@ struct handle *handle_input_new(HANDLE handle, handle_inputfn_t gotdata,
     add234(handles_by_evtomain, h);
 
     CreateThread(NULL, 0, handle_input_threadfunc,
-                &h->u.i, 0, NULL);
+                &h->u.i, 0, &in_threadid);
     h->u.i.busy = TRUE;
 
     return h;
@@ -359,6 +360,7 @@ struct handle *handle_output_new(HANDLE handle, handle_outputfn_t sentdata,
                                 void *privdata, int flags)
 {
     struct handle *h = snew(struct handle);
+    DWORD out_threadid; /* required for Win9x */
 
     h->output = TRUE;
     h->u.o.h = handle;
@@ -378,7 +380,7 @@ struct handle *handle_output_new(HANDLE handle, handle_outputfn_t sentdata,
     add234(handles_by_evtomain, h);
 
     CreateThread(NULL, 0, handle_output_threadfunc,
-                &h->u.i, 0, NULL);
+                &h->u.i, 0, &out_threadid);
 
     return h;
 }