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