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