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