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