* thread.cc (pthread::create(3 args)): Make bool.
(pthread_null::create): Ditto. (pthread::create(4 args)): Check return of inner create rather than calling is_good_object(). * thread.h: Ditto.
This commit is contained in:
parent
c8f07ce787
commit
7d7e7a21b1
|
@ -1,3 +1,11 @@
|
||||||
|
2005-08-05 Michael Gorse <mgorse@alum.wpi.edu>
|
||||||
|
|
||||||
|
* thread.cc (pthread::create(3 args)): Make bool.
|
||||||
|
(pthread_null::create): Ditto.
|
||||||
|
(pthread::create(4 args)): Check return of inner create rather than
|
||||||
|
calling is_good_object().
|
||||||
|
* thread.h: Ditto.
|
||||||
|
|
||||||
2005-08-05 Vaclav Haisman <v.haisman@sh.cvut.cz>
|
2005-08-05 Vaclav Haisman <v.haisman@sh.cvut.cz>
|
||||||
|
|
||||||
* fhandler_tty.cc (fhandler_tty_slave::tcflush): Return either 0 or -1.
|
* fhandler_tty.cc (fhandler_tty_slave::tcflush): Return either 0 or -1.
|
||||||
|
|
|
@ -491,13 +491,15 @@ pthread::precreate (pthread_attr *newattr)
|
||||||
magic = 0;
|
magic = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
bool
|
||||||
pthread::create (void *(*func) (void *), pthread_attr *newattr,
|
pthread::create (void *(*func) (void *), pthread_attr *newattr,
|
||||||
void *threadarg)
|
void *threadarg)
|
||||||
{
|
{
|
||||||
|
bool retval;
|
||||||
|
|
||||||
precreate (newattr);
|
precreate (newattr);
|
||||||
if (!magic)
|
if (!magic)
|
||||||
return;
|
return false;
|
||||||
|
|
||||||
function = func;
|
function = func;
|
||||||
arg = threadarg;
|
arg = threadarg;
|
||||||
|
@ -517,7 +519,9 @@ pthread::create (void *(*func) (void *), pthread_attr *newattr,
|
||||||
while (!cygtls)
|
while (!cygtls)
|
||||||
low_priority_sleep (0);
|
low_priority_sleep (0);
|
||||||
}
|
}
|
||||||
|
retval = magic;
|
||||||
mutex.unlock ();
|
mutex.unlock ();
|
||||||
|
return retval;
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
|
@ -1993,8 +1997,7 @@ pthread::create (pthread_t *thread, const pthread_attr_t *attr,
|
||||||
return EINVAL;
|
return EINVAL;
|
||||||
|
|
||||||
*thread = new pthread ();
|
*thread = new pthread ();
|
||||||
(*thread)->create (start_routine, attr ? *attr : NULL, arg);
|
if (!(*thread)->create (start_routine, attr ? *attr : NULL, arg))
|
||||||
if (!is_good_object (thread))
|
|
||||||
{
|
{
|
||||||
delete (*thread);
|
delete (*thread);
|
||||||
*thread = NULL;
|
*thread = NULL;
|
||||||
|
@ -3274,9 +3277,10 @@ pthread_null::~pthread_null ()
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
bool
|
||||||
pthread_null::create (void *(*)(void *), pthread_attr *, void *)
|
pthread_null::create (void *(*)(void *), pthread_attr *, void *)
|
||||||
{
|
{
|
||||||
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
|
|
|
@ -380,7 +380,7 @@ public:
|
||||||
HANDLE cancel_event;
|
HANDLE cancel_event;
|
||||||
pthread_t joiner;
|
pthread_t joiner;
|
||||||
|
|
||||||
virtual void create (void *(*)(void *), pthread_attr *, void *);
|
virtual bool create (void *(*)(void *), pthread_attr *, void *);
|
||||||
|
|
||||||
pthread ();
|
pthread ();
|
||||||
virtual ~pthread ();
|
virtual ~pthread ();
|
||||||
|
@ -473,7 +473,7 @@ class pthread_null : public pthread
|
||||||
/* From pthread These should never get called
|
/* From pthread These should never get called
|
||||||
* as the ojbect is not verifyable
|
* as the ojbect is not verifyable
|
||||||
*/
|
*/
|
||||||
void create (void *(*)(void *), pthread_attr *, void *);
|
bool create (void *(*)(void *), pthread_attr *, void *);
|
||||||
void exit (void *value_ptr) __attribute__ ((noreturn));
|
void exit (void *value_ptr) __attribute__ ((noreturn));
|
||||||
int cancel ();
|
int cancel ();
|
||||||
void testcancel ();
|
void testcancel ();
|
||||||
|
|
Loading…
Reference in New Issue