diff options
author | Christopher Faylor <me@cgf.cx> | 2001-05-08 15:16:49 +0000 |
---|---|---|
committer | Christopher Faylor <me@cgf.cx> | 2001-05-08 15:16:49 +0000 |
commit | 792011508a5faae82e03a8b49ca1718b5b29be06 (patch) | |
tree | 304f219e8aa687e609465e69833f8edc049cdb9b /winsup/cygwin/dtable.h | |
parent | 791cada5a2d50dbf88ae4f88084aff58ce134584 (diff) | |
download | cygnal-792011508a5faae82e03a8b49ca1718b5b29be06.tar.gz cygnal-792011508a5faae82e03a8b49ca1718b5b29be06.tar.bz2 cygnal-792011508a5faae82e03a8b49ca1718b5b29be06.zip |
* cygheap.cc (_cfree): Add regparm attribute.
(_crealloc): Ditto.
* dcrt0.cc (dll_crt0_1): Default to always checking for executable for now.
* dtable.cc (dtable::not_open): Move method.
* dtable.h (dtable): Here.
* exceptions.cc (ctrl_c_handler): Don't expect process group leader to handle a
signal if it doesn't exist.
* fhandler.h (fhandler_base): Make openflags protected.
* localtime.c (tzsetwall): Check for __CYGWIN__ as well as __WIN32__.
* path.cc (path_conv::check): Add some comments. Change strcat to assignment.
* lib/_cygwin_S_IEXEC.cc (_cygwin_bob__): Eliminate.
* fhandler_tty.cc (fhandler_console::dup): Set controlling terminal if
necessary.
* fhandler_tty.cc (fhandler_tty_slave::dup): Ditto.
Diffstat (limited to 'winsup/cygwin/dtable.h')
-rw-r--r-- | winsup/cygwin/dtable.h | 12 |
1 files changed, 11 insertions, 1 deletions
diff --git a/winsup/cygwin/dtable.h b/winsup/cygwin/dtable.h index b67cfbcc1..f81d916b7 100644 --- a/winsup/cygwin/dtable.h +++ b/winsup/cygwin/dtable.h @@ -11,6 +11,8 @@ details. */ /* Initial and increment values for cygwin's fd table */ #define NOFILE_INCR 32 +#include "thread.h" + class dtable { fhandler_base **fds; @@ -41,7 +43,15 @@ public: fhandler_base *build_fhandler (int fd, DWORD dev, const char *name, int unit = -1); fhandler_base *build_fhandler (int fd, const char *name, HANDLE h); - int not_open (int n) __attribute__ ((regparm(1))); + int not_open (int fd) + { + SetResourceLock (LOCK_FD_LIST, READ_LOCK, "not_open"); + + int res = fd < 0 || fd >= (int) size || fds[fd] == NULL; + + ReleaseResourceLock (LOCK_FD_LIST, READ_LOCK, "not open"); + return res; + } int find_unused_handle (int start); int find_unused_handle () { return find_unused_handle (first_fd_for_open);} void release (int fd); |