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