2003-01-26 Miguel de Icaza <miguel@ximian.com>
[mono.git] / mono / io-layer / ChangeLog
1 2003-01-26  Miguel de Icaza  <miguel@ximian.com>
2
3         * io.c (SetFileAttributes): This routine is not currently
4         implemented for the general case, but I added a special case to
5         set the executable bit on Linux.
6
7 Wed Jan 15 15:55:40 CET 2003 Paolo Molaro <lupus@ximian.com>
8
9         * sockets.h, daemon.c, io.c: compilation fixes on MacOSX.
10
11 2003-01-08  Dick Porter  <dick@ximian.com>
12
13         * sockets.c: Fixed setting blocking mode to true (fixes bug 36388)
14
15 2002-12-11  Juli Mallett  <jmallett@FreeBSD.org>
16
17         * daemon.c, handles-private.h, handles.c, wapi-private.h:
18         Check for an implementation which says it supports
19         _POSIX_THREAD_PROCESS_SHARED, rather than just one that
20         defines the symbol.  Defined but with a value of -1 still
21         means that it is unsupported.
22
23 2002-12-08  Martin Baulig  <martin@ximian.com>
24
25         * handles.c (_wapi_handle_new): Create new non-shared handles with
26         an initial refcount of 1, not 0.
27
28 2002-11-22  Dietmar Maurer  <dietmar@ximian.com>
29
30         * threads.c (TlsGetValue): removed unnecessary mutex
31
32 2002-11-20  Dick Porter  <dick@ximian.com>
33
34         * timed-thread.c (_wapi_timed_thread_attach): Attached threads
35         need to store their data structure too.
36
37         * threads.c: Make sure the threading data is initialised wherever
38         it is needed
39
40 2002-11-15  Dick Porter  <dick@ximian.com>
41
42         * timed-thread.c: Removed unneeded parameters in
43         _wapi_timed_thread_attach().
44
45         * threads.c: Renamed AttachThread() to make it not look like
46         external API.  Removed unneeded parameters.
47
48 2002-11-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
49
50         * error.[ch]: added errno_to_WSA (). It displays a warning and return
51         WSASYSCALLFAILURE if there is no error mapping for the given errno,
52
53         * sockets.c: use errno_to_WSA and fixed display of warning for h_errno.
54
55 2002-10-31  Dick Porter  <dick@ximian.com>
56
57         * io.h: 
58         * io.c: Define and use INVALID_FILE_ATTRIBUTES
59
60 2002-10-07  Dick Porter  <dick@ximian.com>
61
62         * timefuncs.c:
63         * daemon.c: Use a more accurate time source for process start and
64         end times.
65
66 2002-10-03  Dick Porter  <dick@ximian.com>
67
68         * daemon.c:
69         * handles.c:
70         * threads.c:  Fixes for freebsd.  Make sure that mutex and condition
71         creation and deletion happen in the process that owns them, when
72         POSIX shared thread objects aren't supported.  This breaks on
73         freebsd, as pthread_t is a pointer to data.
74
75 2002-10-02  Dick Porter  <dick@ximian.com>
76
77         * shared.c: Use mmap() instead of sysv shm for the shared data.
78
79         * wapi-private.h (_WAPI_HANDLE_VERSION): Reset back to 0, for the
80         new system
81
82         * daemon-private.h: 
83         * daemon.c: mmap()ed regions survive fork, so just pass the
84         pointer to _wapi_daemon_main instead of mapping it again.
85
86 2002-10-01  Dick Porter  <dick@ximian.com>
87
88         * timed-thread.c: Kludge for CREATE_SUSPENDED thread creation.
89         Unfortunately libgc uses the same thread suspend technique that I
90         want to, and the two don't mix: libgc will deadlock when it tries
91         to stop the world if a thread has already been suspended by
92         someone else.  Just do the simple suspended create rather than the
93         general purpose thread suspension for now.
94
95         * threads.c: Pass create flags to the timed_thread create call, to
96         implement suspended thread creation.  ResumeThread() partially
97         implemented, to cope with the case where a newly created but
98         suspended thread is launched.
99
100 2002-09-30  Dick Porter  <dick@ximian.com>
101
102         * sockets.c (ioctlsocket): Set non-blocking mode in a better way,
103         with fcntl.
104
105 2002-09-27  Dick Porter  <dick@ximian.com>
106
107         * semaphores.c: Only include semaphore.h if it's present. Patch
108         for BSD from jmmv@hispabsd.org (Julio Merino).
109
110 2002-09-27  Dick Porter  <dick@ximian.com>
111
112         * processes.c: Pass environment and working directory to the
113         daemon when forking.  Don't let argv[0] be duplicated when looking
114         for the program name.  Implement EnumProcessModules (simple
115         version for now, lsof-style later if needed), GetModuleBaseName,
116         {Get,Set}ProcessWorkingSetSize (just faked, because the vm hints
117         aren't available on Linux).
118
119         * process-private.h: Store the process name, and the working set
120         min and max
121
122         * handles.c:
123         * handles-private.h: New functions to store and retrieve an array
124         of strings in the scratch space
125
126         * daemon.c: Don't miss deleting some handles when a client exits
127         (we used to rely on the client doing the final cleanup, but
128         obviously if the client is no longer there the daemon has to do
129         it).
130
131         Process forking now sets the environment and the working
132         directory.
133
134         * io.c: Don't confuse fd 0 with an unassigned handle struct
135
136         * atomic.h: Add a google cache alternative to the msdn URL
137
138 2002-09-25  Gonzalo Paniagua Javier <gonzalo@ximian.com>
139
140         * sockets.c:
141         (_wapi_recvfrom): added ECONNRESET to the switch.
142
143 2002-09-24  Mark Crichton  <crichton@gimp.org>
144
145         * atomic.h: Yea.  On linux, sparc isn't sparc, it's __sparc__.
146         Added to ifdef.
147
148 2002-09-19  Mark Crichton  <crichton@gimp.org>
149
150         * daemon.c, shared.c: Added NEED_LINK_UNLINK for systems that
151         dont have Linux's abstract filesystem for sockets.
152
153 2002-09-19  Mark Crichton  <crichton@gimp.org>
154
155         * atomic.h: Added SPARC atomic asm code.
156         * daemon.c, handles-private.h, handles.c, wapi-private.h:
157         undefined _POSIX_THREAD_PROCESS_SHARED.  This actually exists on
158         Solaris 9, however, the code paths don't seem to work.  More testing
159         on the shared case is *really* needed.
160
161 2002-09-03  Dick Porter  <dick@ximian.com>
162
163         * threads.h: 
164         * threads.c: Removed PosixKillThread(), because it's not in the
165         w32 api
166
167 2002-08-20  Dick Porter  <dick@ximian.com>
168
169         * handles.c (_wapi_handle_scratch_store): Made stored byte lengths
170         multiples of 4 bytes, to keep header structures aligned.  Needed
171         for sparc, at least. (Patch from crichton@gimp.org)
172
173         * handles.c: Removed 'disable_shm' variable (we've defaulted to
174         building with shm enabled for months now)
175
176 2002-08-19  Dick Porter  <dick@ximian.com>
177
178         * daemon.c: Rewrote the poll() loop to use GIOChannels instead,
179         for legacy NeXT-based systems.
180
181 2002-08-12  Dick Porter  <dick@ximian.com>
182
183         * atomic.h: Rename some parameters to avoid c++ keywords (Patch
184         from Joseph Wenninger <kde@jowenn.at>)
185
186 2002-08-05  Dietmar Maurer  <dietmar@ximian.com>
187
188         * threads.c: use fast spinlocks by default
189
190 2002-08-02  Dick Porter  <dick@ximian.com>
191
192         * io.c (GetStdHandle): Add a handle reference when returning a
193         duplicate console handle.  This fixes the unref_handle errors in
194         NUnit.
195
196 2002-08-01  Dietmar Maurer  <dietmar@ximian.com>
197
198         * threads.c (TLS_PTHREAD_MUTEX): define this because else some
199         tests does not work
200
201 2002-08-01  Dick Porter  <dick@ximian.com>
202
203         * threads.c: Use atomic spinlocks in TLS functions
204
205         * mono-spinlock.h:
206         * Makefile.am: Added mono-spinlock.h
207
208 2002-07-21  Jeffrey Stedfast  <fejj@ximian.com>
209
210         * daemon-messages.c: #include <sys/types.h> and <sys/sockets.h> -
211         these are needed for sendmsg() and also for struct msghdr (at
212         least on Solaris). Solaris still won't build because struct msghdr
213         doesn't have msg_flags, msg_control, or msg_controllen members.
214         (CMSG_SPACE): Define for systems that don't have it.
215         (CMSG_LEN): Same.
216
217 2002-07-20  Dick Porter  <dick@ximian.com>
218
219         * wapi-private.h:
220         * io-private.h:
221         * io.h:
222         * io.c:
223         * handles.c: Implemented pipe handles
224         
225         * handles.c:
226         * daemon.c: Fixed bug in handle closing.
227
228         * shared.c:
229         * daemon.c: Forked processes now close all open file descriptors.
230
231 Fri Jul 19 19:05:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
232
233         * sockets.h, io-layer.h, critical-sections.h: don't include config.h
234         in header files.
235
236 2002-07-19  Martin Baulig  <martin@gnome.org>
237
238         * threads.c (ExitThread): Call exit() if no threads has been
239         created yet.
240
241 2002-07-17  Dick Porter  <dick@ximian.com>
242
243         * daemon-messages.c: Freebsd fixes from Andreas Kohn
244         <andreas.kohn@gmx.net>
245
246 2002-07-15  Dick Porter  <dick@ximian.com>
247
248         * io.c: Removed bogus console_flush() method, that was just cut
249         and pasted from file_flush when I separated the two handle types.
250
251 2002-07-12  Dick Porter  <dick@ximian.com>
252
253         * io.c (convert_from_flags): Fixed misunderstanding wrt fcntl
254         flags.  Fixes bug 27633.
255
256 2002-07-12  Dick Porter  <dick@ximian.com>
257
258         * wapi-private.h:
259         * handles.c:
260         * daemon.c: Use size of sockaddr_un.sun_path from config.h
261
262 2002-07-12  Dick Porter  <dick@ximian.com>
263
264         * processes.c (CreateProcess): Send stdin, stdout and stderr
265         handles if the startup info doesnt specify new ones
266
267         * io.c (GetStdHandle): Return the same handle when the same
268         standard handle is requested
269
270         * handles.c: Pass file descriptors when forking
271
272         * daemon.c: Use supplied file descriptors when forking a new
273         process
274
275         * daemon-messages.h: 
276         * daemon-messages.c: Pass stdin, stdout and stderr file
277         descriptors to the daemon (used when forking)
278
279 2002-07-11  Miguel de Icaza  <miguel@ximian.com>
280
281         * daemon.c (_wapi_daemon_main): Use sizeof
282         (main_socket_address.sun_path) instead of hardcoded 108 value.
283
284         * handles.c (shared_init): Use sizeof
285         (shared_socket_address.sun_path) instead of hardcoded 108 value.
286
287 2002-07-10  Dennis Haney  <davh@davh.dk>
288
289         * shared.c:
290         * handles.c:
291         * daemon.c: Lots of documentation, some added error checking, and
292         code readability improvements.
293
294         * daemon-messages.h: Add the Error request type to improve error
295         checking.
296
297         * daemon-messages.c: Do a bit more error checking on send() and
298         recv(), and log errors with a higher severity level.
299
300 2002-07-04  Dick Porter  <dick@ximian.com>
301
302         * daemon.c (process_process_fork): Fix argument handling, due to
303         buggy understanding of g_strsplit() behaviour.
304
305 2002-07-03  Dick Porter  <dick@ximian.com>
306
307         * threads.h:
308         * threads.c: Implement OpenThread().  Define access-control values
309         for thread handles.
310
311         * wapi.h:
312         * processes.h:
313         * access.h:
314         * Makefile.am: Added access.h, to hold shared access-control
315         definitions
316
317 2002-07-02  Dick Porter  <dick@ximian.com>
318
319         * wapi-private.h (_WAPI_HANDLE_VERSION): New protocol version
320         
321 2002-07-02  Dick Porter  <dick@ximian.com>
322
323         * handles.c (shared_init): Make a second attempt to contact the
324         daemon if the shared memory attach succeeds, but the connect()
325         fails. (This copes with the daemon crashing without cleaning up
326         the shared memory.)
327
328         * Makefile.am: 
329         * daemon-private.h:
330         * daemon.c:
331         * shared.c (_wapi_shm_attach): Don't exec() anything when we fork
332         the daemon, it's now built into the library.
333
334 2002-06-25  Dick Porter  <dick@ximian.com>
335
336         * handles.c:
337         * handles-private.h:
338         * daemon-messages.h:
339         * daemon.c: Process forking and handle data management
340
341         * processes.h:
342         * process-private.h:
343         * processes.c: Process forking and other support functions
344
345 2002-06-25  Dick Porter  <dick@ximian.com>
346
347         * versioninfo.h: PE resource decoding
348
349         * unicode.c (_wapi_unicode_to_utf8): g_utf16_to_utf8 doesnt need
350         to be told the string length
351
352         * io.c: Removed the ACTUALLY_DO_UNICODE option.  Fixed some leaks.
353         Moved _wapi_time_t_to_filetime and the WapiFileTime typedef to
354         timefuncs.c
355
356 2002-06-12  Dick Porter  <dick@ximian.com>
357
358         * daemon.c: 
359         * daemon-messages.c: Handle SIGPIPE in a non-stupid way in the
360         daemon, if MSG_NOSIGNAL isn't available.  Thanks to Jaroslaw
361         Kowalski <jarek@atm.com.pl> for pointing out the bogosity.
362
363 2002-06-10  Jaroslaw Kowalski <jarek@atm.com.pl>
364
365         * sockets.c, daemon-messages.c: Prevent SIGPIPE from being raised
366         when writing to a closed socket.
367
368 2002-06-08  Jeffrey Stedfast  <fejj@ximian.com>
369
370         * mono-mutex.c (mono_once): New convenience function for my
371         previous fix.
372
373         * handles.c:
374         * error.c: 
375         * critical-sections.c: 
376         * threads.c: 
377         * sockets.c: 
378         * semaphores.c: 
379         * processes.c: 
380         * mutexes.c: 
381         * io.c: 
382         * events.c: 
383         * atomic.c: Use mono_once() rather than pthread_once().
384
385 2002-06-06  Jeffrey Stedfast  <fejj@ximian.com>
386
387         * handles.c (_wapi_handle_new): pthread_once() is not atomic, so
388         if multiple threads all try to call _wapi_handle_new() before the
389         shared data has been initialized, it is possible that we could get
390         into a condition where shared_init() is being executed and later
391         threads will pass by pthread_once() due to the fact that it has
392         already been called and so therefor will attempt to use the shared
393         data before it has been completely initialized. If we instead use
394         a standard mutex locking mechanism around shared_init(), we can
395         avoid the situation entirely. By wrapping the mutex locking in a
396         check to see if we've already initialized the data, we can even
397         avoid wasting resources by having to lock/unlock the mutex in any
398         later calls (the only time we'd have to worry about
399         locking/unlocking is the initial race to call shared_init() at
400         startup).
401
402 Sat Jun 1 13:27:11 CEST 2002 Paolo Molaro <lupus@ximian.com>
403
404         * atomic.h: inline asm fixes from Dennis Haney (davh@davh.dk).
405
406 Fri May 31 16:21:54 CEST 2002 Paolo Molaro <lupus@ximian.com>
407
408         * daemon.c, handles.c: rename "sun" local var since it's apparently
409         a #define on Solaris.
410
411 Fri May 31 15:40:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
412
413         * daemon-messages.c: work-around MSG_NOSIGNAL missing on some
414         platforms.
415
416 2002-05-15  Dick Porter  <dick@ximian.com>
417
418         * wait.c: Fix a deadlock in WaitForMultipleObjects
419
420 2002-05-14  Dick Porter  <dick@ximian.com>
421
422         * io.c: Fix a cut&paste error, found by
423         Jaroslaw Kowalski <jarek@atm.com.pl>
424
425 2002-05-10  Dan Lewis  <dihlewis@yahoo.co.uk>
426
427         * io.c: Nasty typo.
428
429 2002-05-09  Dick Porter  <dick@ximian.com>
430
431         * threads.c: 
432         * semaphores.c: 
433         * processes.c: 
434         * mutexes.c: 
435         * handles-private.h: 
436         * events.c: 
437         * Makefile.am: Remove now-unused file wait-private.h
438
439 2002-05-08  Dick Porter  <dick@ximian.com>
440
441         * shared.c: Better error messages, and report when daemon
442         connection fails rather than blocking forever.  Do some more
443         shared memory sanity checking.
444
445         * handles.c: Better error messages when connecting to shared
446         memory and the handle daemon.  Fall back to non-shared handles if
447         an error occurs.  Set the default back to 'shared handles'.  Fix a
448         crashing bug in scratch space allocation that mangled the block
449         headers.
450
451 2002-05-07  Miguel de Icaza  <miguel@ximian.com>
452
453         * handles.c (shared_init): Disable SHM for now, people have too
454         many problems with this, and the diagnostics are not helping.
455
456 2002-05-06  Dan Lewis  <dihlewis@yahoo.co.uk>
457
458         * io.c: CreateFile sets win32 last error.
459
460 2002-05-05  Dick Porter  <dick@ximian.com>
461
462         * wapi-private.h: 
463         * handles-private.h:
464         * io.c: 
465         * io-private.h:
466         * mutexes.c: 
467         * mutex-private.h: 
468         * processes.c: 
469         * process-private.h: 
470         * semaphores.c: 
471         * semaphore-private.h: 
472         * sockets.c: 
473         * socket-private.h: 
474         * events.c: 
475         * event-private.h: Simplify the WapiHandleOps struct: take out all
476         the file-specific entries, leaving just the items that operate on
477         handles themselves.  Split the close operation into shared and
478         private parts: shared close is called by the daemon.
479
480         * handles.c: As above, but also pass handle allocation, ref and
481         unref operations to the daemon.  Populate the handle_ops array at
482         compile time, because the daemon needs to call ops on handles too.
483         Don't bother to track open handle counts any more, the daemon does
484         that.
485         
486         * threads.c: 
487         * thread-private.h: As above, but also make the thread data
488         handle-private.
489
490         * shared.c: Fork a handle daemon if the calling process created
491         the shared memory segment.
492
493         * daemon.c:
494         * daemon-messages.c:
495         * daemon-messages.h:
496         * Makefile.am: Build a daemon to manage handle allocation and
497         destruction without needing to lock the shared memory
498
499 2002-04-30  Jeffrey Stedfast  <fejj@ximian.com>
500
501         * atomic.c: Changed to use a normal mutex rather than a spinlock
502         since a lot of platforms seem to not have them :\
503
504 2002-04-30  Dick Porter  <dick@ximian.com>
505
506         * Completely rewrote the handle waiting code: removed the helper
507         thread and its attendant complexity.  All handle waiting is now
508         abstracted into the WaitForSingleObject() and
509         WaitForMultipleObjects() functions.
510
511         * Implemented inter-process sharing of handles using sysv shared
512         memory.  This makes handles even more opaque, with a handle now
513         just an index into an array.
514         
515 2002-04-25  Dan Lewis  <dihlewis@yahoo.co.uk>
516
517         * io.c: unitialized pointer in GetCurrentDirectory.
518
519 Sat Apr 20 13:37:39 CEST 2002 Paolo Molaro <lupus@ximian.com>
520
521         * threads.c: destroy the mutex at thread destruction
522         (if/when thread destruction code will be actually called).
523         When protecting a tls data pointer from the gc, use also the 
524         thread id in the key.
525         
526 Wed Apr 17 18:36:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
527
528         * timed-thread.c: avoid race condition when setting the thread to
529         detached.
530
531 2002-04-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
532
533         * jit.h: to more #include lines to avoid breaking compilation
534         under windows when upgrading mingw and w32api to version
535         1.3 (thanks Dick!).
536
537 2002-04-16  Dick Porter  <dick@ximian.com>
538
539         * atomic.h: Explanatory comment about lack of 80386 support
540
541 2002-04-15  Dick Porter  <dick@ximian.com>
542
543         * atomic.h: use xaddl for InterlockedIncrement() and
544         InterlockedDecrement().  Use cmpxchgl in a loop for
545         InterlockedExchange() and InterlockedExchangePointer().
546
547 Mon Apr 15 13:31:22 CEST 2002 Paolo Molaro <lupus@ximian.com>
548
549         * unicode.c: fix unicode_len() to not access uninitialized memory
550         (and updated to conform to mono code style).
551
552 Fri Mar 29 17:15:11 CET 2002 Paolo Molaro <lupus@ximian.com>
553
554         * io.c: EEXISTS is ignored for directory creation.
555         * mono-mutex.h: remove silly "pragma }" that emacs users insert
556         because they use a broken editor:-)
557
558 2002-03-28  Dick Porter  <dick@ximian.com>
559
560         * sockets.h: 
561         * sockets.c: 
562         * io.c: 
563         * handles.h: 
564         * handles.c: Warning cleanups
565
566 2002-03-27  Dan Lewis <dihlewis@yahoo.co.uk>
567
568         * unicode.h, unicode.c: changed to gunichar2
569         * io.h, io.c: changed strings to gunichar2*, added
570         SetFileAttributes(), GetCurrentDirectory(), SetCurrentDirectory(),
571         some fixes to FindFirstFile() and friends.
572
573 2002-03-26  Dick Porter  <dick@ximian.com>
574
575         * types.h: Implement the large integer struct
576
577         * timefuncs.h:
578         * timefuncs.c: Dummy functions that don't yet implement
579         QueryPerformanceCounter() and QueryPerformanceFrequency()
580
581         * threads.h:
582         * threads.c: Implement SleepEx()
583
584         * system.h:
585         * system.c: Beginnings of GetSystemInfo()
586
587         * mono-mutex.c (pthread_mutex_timedlock): Fix a ms/ns conversion
588         thinko
589
590         * context.h:
591         * context.c: Dummy function that doesnt yet implement
592         GetThreadContext()
593
594         * atomic.h: 
595         * atomic.c: Interlocked functions
596
597 Mon Mar 25 13:01:40 CET 2002 Paolo Molaro <lupus@ximian.com>
598
599         * threads.c: use a gc-safe hash table to store tls pointers.
600
601 2002-03-22  Dick Porter  <dick@ximian.com>
602
603         * threads.c: Fix a race condition where a thread can start and
604         exit before the handle has been properly initialised (no reason
605         why the handle couldn't be initialised beforehand, so do so)
606
607         Fix a ms to ns conversion magnitude thinko.
608
609 2002-03-21  Dick Porter  <dick@ximian.com>
610
611         * semaphores.c: Fix a problem when waiting for one or more
612         semaphores, and another semaphore is Released (all waiting
613         semaphores assumed they were signalled)
614
615 2002-03-29  Dan Lewis <dihlewis@yahoo.co.uk>
616
617         * io.h, io.c, uglify.h: added MoveFile, CopyFile, CreateDirectory,
618         RemoveDirectory, GetFileAttributes, GetFileAttributesEx
619
620 2002-03-19  Dietmar Maurer  <dietmar@ximian.com>
621
622         * threads.c (Sleep): bug fix: 1ms == 1000000ns
623
624 2002-03-19  Dan Lewis <dihlewis@yahoo.co.uk>
625
626         * io.h, io.c, events.c, mutexes.c, semaphores.c, sockets.c,
627         threads.c, io.c: added flush method to handles.
628
629         * io.c: FlushFileBuffers() and FindFirstFile() functions.
630
631 Thu Mar 7 17:21:52 CET 2002 Paolo Molaro <lupus@ximian.com>
632
633         * threads.c, timed-thread.c, wait.c: Boehm-GC anable.
634
635 2002-02-20  Dick Porter  <dick@ximian.com>
636
637         * io-layer.h: Always build without cygwin support on windows
638
639 Mon Feb 18 15:50:59 CET 2002 Paolo Molaro <lupus@ximian.com>
640
641         * sockets.c: #undef DEBUG.
642
643 2002-02-14  Jeffrey Stedfast  <fejj@ximian.com>
644
645         * io-layer.h: conditionally include sys/filio.h and sys/sockio.h
646         for FIONBIO, FIONREAD, and SIOCATMARK.
647
648 2002-02-14  Jeffrey Stedfast  <fejj@ximian.com>
649
650         * sockets.c: conditionally include sys/filio.h and sys/sockio.h
651         for FIONBIO, FIONREAD, and SIOCATMARK.
652
653 2002-02-13  Dick Porter  <dick@ximian.com>
654
655         * sockets.c: Implement shutdown and select
656
657 2002-02-13  Jeffrey Stedfast  <fejj@ximian.com>
658
659         * mono-mutex.[c,h]: New source files that thinly wrap all pthread
660         functions that take pthread_mutex_t and/or pthread_mutexattr_t
661         arguments for the sake of portability. Implements recursive
662         mutexes and pthread_mutex_timedlock.
663
664         * critical-sections.c:
665         * events.c:
666         * handles.c:
667         * mutexes.c:
668         * semaphores.c:
669         * threads.c:
670         * timed-thread.c:
671         * wait.c: Use the mono-mutex wrapper portability functions/macros.
672
673         * pthread-compat.[c,h]: Replaced by mono-mutex.[c,h]
674
675 2002-01-23  Dick Porter  <dick@ximian.com>
676
677         * sockets.c: Networking support, mostly wrapping BSD socket APIs
678         with handle code, and translating errno into w32 error codes.
679
680         * macros.h: Some w32 macros used with the socket support
681
682         * error.c: Implemented GetLastError() and SetLastError()
683
684         * Makefile.am: Added sockets, with kludge to override some symbols
685
686 2001-12-17  Dietmar Maurer  <dietmar@ximian.com>
687
688         * unicode.c (_wapi_unicode_to_utf8): byteswap UTF16 strings before
689         passing them to iconv
690         (_wapi_unicode_to_utf8): only swap bytes on LE systems, remove bug
691         from previous commit.
692
693 2001-12-11  Dick Porter  <dick@ximian.com>
694
695         * io.c: Implement DeleteFile(), GetFileTime(), SetFileTime() and
696         FileTimeToSystemTime().
697
698         * unicode.c (unicode_len): Nasty way of finding length of unicode
699         string with embedded NULLs (counts until two NULLs together).
700
701         * mutexes.c (mutex_close): 
702         * events.c (event_close): Release the internal pthreads resources
703
704 2001-11-26  Dick Porter  <dick@ximian.com>
705
706         * critical-sections.c:
707         * events.c:
708         * handles.c:
709         * io.c:
710         * mutexes.c:
711         * semaphores.c:
712         * threads.c:
713         * timed-thread.c:
714         * wait.c: turn off DEBUG messages
715
716 2001-11-22  Dick Porter  <dick@ximian.com>
717
718         * handles.c (SignalObjectAndWait): Implement
719
720         * wait.c (WaitForSingleObject): Fix case where timeout == 0
721
722         * threads.c:
723         * semaphores.c:
724         * mutexes.c:
725         * io.c:
726         * events.c: Support for SignalObjectAndWait
727         
728 2001-11-21  Dick Porter  <dick@ximian.com>
729
730         * events.c:
731         * handles.c:
732         * mutexes.c:
733         * semaphores.c:
734         * threads.c:
735         * wait.c: Reliable method of returning which handle was signalled
736         on return from WaitForMultipleObjects().
737
738 2001-11-21  Dick Porter  <dick@ximian.com>
739
740         * events.c: Implement events
741
742 2001-11-15  Dick Porter  <dick@ximian.com>
743
744         * mutexes.c: Implement mutexes
745
746         * threads.c: 
747         * semaphores.c: 
748         * misc.c: Factor out some common code
749
750 2001-11-13  Dick Porter  <dick@ximian.com>
751
752         * threads.c: Implement TLS.  Implement GetCurrentThreadId(), and
753         GetCurrentThread() by maintaining a hash of thread handles.
754
755         * threads.h: Define thread and process creation flags
756
757 2001-11-12  Dick Porter  <dick@ximian.com>
758
759         * critical-sections.c: Implement critical sections
760
761 2001-11-12  Dick Porter  <dick@ximian.com>
762
763         * semaphores.c: Implement semaphores
764
765         * wait.c (wait_for_item): Maintain a wait count rather than count
766         signalled booleans.
767
768         * threads.c (thread_wait_multiple): Don't lock the wait item, that
769         will block other wait threads
770
771 2001-11-11  Dick Porter  <dick@ximian.com>
772
773         * Makefile.am: Rename some automake variables
774         (from Nick Drochak <ndrochak@gol.com>)
775
776 2001-11-10  Dick Porter  <dick@ximian.com>
777
778         * Makefile.am (libwapiincludedir): Fix include destination
779
780         * .cvsignore: Ignore generated files
781
782 2001-11-10  Dietmar Maurer  <dietmar@ximian.com>
783
784         * pthread-compat.c: added some include files to make it compile on
785         linux.
786
787 2001-11-08  Dick Porter  <dick@ximian.com>
788
789         * Initial checkin.
790
791         This is a library emulating the win32 threading and IO API.
792
793