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