* dtable.h (dtable::first_fd_for_open): Change declaration to size_t.
(dtable::extend): Change parameter to size_t. (dtable::find_unused_handle): Ditto. * dtable.cc: Remove now-unused header. (dtable::extend): Remove pointless test. Change parameter to size_t. (dtable::find_unused_handle): Rework to avoid MAX calculation in extend() call. Change parameter to size_t.
This commit is contained in:
parent
483c843a6a
commit
499494d2cc
@ -1,3 +1,13 @@
|
|||||||
|
2013-11-30 Christopher Faylor <me.cygwin2013@cgf.cx>
|
||||||
|
|
||||||
|
* dtable.h (dtable::first_fd_for_open): Change declaration to size_t.
|
||||||
|
(dtable::extend): Change parameter to size_t.
|
||||||
|
(dtable::find_unused_handle): Ditto.
|
||||||
|
* dtable.cc: Remove now-unused header.
|
||||||
|
(dtable::extend): Remove pointless test. Change parameter to size_t.
|
||||||
|
(dtable::find_unused_handle): Rework to avoid MAX calculation in
|
||||||
|
extend() call. Change parameter to size_t.
|
||||||
|
|
||||||
2013-11-30 Christopher Faylor <me.cygwin2013@cgf.cx>
|
2013-11-30 Christopher Faylor <me.cygwin2013@cgf.cx>
|
||||||
|
|
||||||
* dtable.cc (build_fh_pc): When creating an archetype, use native name
|
* dtable.cc (build_fh_pc): When creating an archetype, use native name
|
||||||
|
@ -16,7 +16,6 @@ details. */
|
|||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include <unistd.h>
|
#include <unistd.h>
|
||||||
#include <wchar.h>
|
#include <wchar.h>
|
||||||
#include <sys/param.h>
|
|
||||||
|
|
||||||
#define USE_SYS_TYPES_FD_SET
|
#define USE_SYS_TYPES_FD_SET
|
||||||
#include <winsock.h>
|
#include <winsock.h>
|
||||||
@ -73,14 +72,11 @@ set_std_handle (int fd)
|
|||||||
}
|
}
|
||||||
|
|
||||||
int
|
int
|
||||||
dtable::extend (int howmuch)
|
dtable::extend (size_t howmuch)
|
||||||
{
|
{
|
||||||
int new_size = size + howmuch;
|
int new_size = size + howmuch;
|
||||||
fhandler_base **newfds;
|
fhandler_base **newfds;
|
||||||
|
|
||||||
if (howmuch <= 0)
|
|
||||||
return 0;
|
|
||||||
|
|
||||||
if (new_size > OPEN_MAX_MAX)
|
if (new_size > OPEN_MAX_MAX)
|
||||||
{
|
{
|
||||||
set_errno (EMFILE);
|
set_errno (EMFILE);
|
||||||
@ -225,8 +221,10 @@ dtable::delete_archetype (fhandler_base *fh)
|
|||||||
}
|
}
|
||||||
|
|
||||||
int
|
int
|
||||||
dtable::find_unused_handle (int start)
|
dtable::find_unused_handle (size_t start)
|
||||||
{
|
{
|
||||||
|
size_t extendby = (start > size) ? start - size : NOFILE_INCR;
|
||||||
|
/* This do loop should only ever execute twice. */
|
||||||
do
|
do
|
||||||
{
|
{
|
||||||
for (size_t i = start; i < size; i++)
|
for (size_t i = start; i < size; i++)
|
||||||
@ -234,7 +232,7 @@ dtable::find_unused_handle (int start)
|
|||||||
if (fds[i] == NULL)
|
if (fds[i] == NULL)
|
||||||
return i;
|
return i;
|
||||||
}
|
}
|
||||||
while (extend (MAX (NOFILE_INCR, start - size)));
|
while (extend (extendby));
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -32,7 +32,7 @@ class dtable
|
|||||||
unsigned narchetypes;
|
unsigned narchetypes;
|
||||||
unsigned farchetype;
|
unsigned farchetype;
|
||||||
static const int initial_archetype_size = 8;
|
static const int initial_archetype_size = 8;
|
||||||
int first_fd_for_open;
|
size_t first_fd_for_open;
|
||||||
int cnt_need_fixup_before;
|
int cnt_need_fixup_before;
|
||||||
void lock () {lock_process::locker.acquire ();}
|
void lock () {lock_process::locker.acquire ();}
|
||||||
void unlock () {lock_process::locker.release ();}
|
void unlock () {lock_process::locker.release ();}
|
||||||
@ -54,7 +54,7 @@ public:
|
|||||||
void vfork_parent_restore ();
|
void vfork_parent_restore ();
|
||||||
void vfork_child_fixup ();
|
void vfork_child_fixup ();
|
||||||
fhandler_base *dup_worker (fhandler_base *oldfh, int flags);
|
fhandler_base *dup_worker (fhandler_base *oldfh, int flags);
|
||||||
int extend (int howmuch);
|
int extend (size_t howmuch);
|
||||||
void fixup_after_fork (HANDLE);
|
void fixup_after_fork (HANDLE);
|
||||||
void fixup_close (size_t, fhandler_base *);
|
void fixup_close (size_t, fhandler_base *);
|
||||||
|
|
||||||
@ -65,7 +65,7 @@ public:
|
|||||||
unlock ();
|
unlock ();
|
||||||
return res;
|
return res;
|
||||||
}
|
}
|
||||||
int find_unused_handle (int start);
|
int find_unused_handle (size_t start);
|
||||||
int find_unused_handle () { return find_unused_handle (first_fd_for_open);}
|
int find_unused_handle () { return find_unused_handle (first_fd_for_open);}
|
||||||
void __reg2 release (int fd);
|
void __reg2 release (int fd);
|
||||||
void init_std_file_from_handle (int fd, HANDLE handle);
|
void init_std_file_from_handle (int fd, HANDLE handle);
|
||||||
|
Loading…
Reference in New Issue
Block a user