From: Alain Magloire Message-Id: <199904151734.NAA15732@mccoy2.ECE.McGill.CA> Subject: Re: v2.x release: features ? To: eliz AT is DOT elta DOT co DOT il (Eli Zaretskii) Date: Thu, 15 Apr 1999 13:34:06 -0400 (EDT) Cc: djgpp-workers AT delorie DOT com In-Reply-To: from "Eli Zaretskii" at Apr 15, 99 02:00:25 pm X-Mailer: ELM [version 2.4 PL25] MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit Reply-To: djgpp-workers AT delorie DOT com X-Mailing-List: djgpp-workers AT delorie DOT com X-Unsubscribes-To: listserv AT delorie DOT com Precedence: bulk Bonjour M. Eli Zaretskii > > On Wed, 14 Apr 1999, Alain Magloire wrote: > > > Is there major projects ahead for the core DJGPP/libc ? > > IMHO, you just covered about everything. There are quite a few minor > features and improvements, but I can't think of any other major ones. > There are a couple of others but some may not mean much in a single task environment. Virtual Memory, file mapping : mmap(), munmap(), mlock(), mlockall() ,... IPC: semaphores, message queues, shared memory Maybe only usefull with some multitasking even if crude/raw/minimalist. Asynch I/O. > But I guess we didn't discuss this for a very long time, so now might > be as good as ever. If anybody has more missing features in mind, > please speak up (and don't forget to volunteer to implement some ;-). > Threading is an interesting topic : - There's the ubiquitous ``errno''. - stdio API : - void flockfile(FILE *); - int ftrylockfile(File *); - void funlockfile(FILE *); - int getc_unlocked(FILE *); - int getc_unlocked(void); - int putc_unlocked(int, File *); - int putchar_unlocked(int); So some functions should grab the lock stream before. For example if fflush() is not thread-safe int fflush(FILE * stream) { if (stream) { flockfile(stream); ..... funlockfile(stream); } ... } - C lib reentrant interface : - getlogin_r - readir_r - strtock_r - asctime_r - ctime_r - gmtime_r - localtime_r - rand_r - getgrpid_r - getgrnam_r - getpwuid_r - getpwnam_r - Audit the src some funcs may be implemented in non-thread safe manner. malloc/calloc/realloc/free comes to mind. -- au revoir, alain ---- Aussi haut que l'on soit assis, on est toujours assis que sur son cul !!!