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