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