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