mirror of
https://github.com/MariaDB/server.git
synced 2025-07-30 16:24:05 +03:00
Merge pchardin@bk-internal.mysql.com:/home/bk/mysql-5.0
into mysql.com:/home/cps/mysql/trees/mysql-5.0
This commit is contained in:
@ -138,15 +138,25 @@ static int wait_process(My_process_info *pi)
|
||||
static int start_process(Instance_options *instance_options,
|
||||
My_process_info *pi)
|
||||
{
|
||||
#ifndef __QNX__
|
||||
*pi= fork();
|
||||
#else
|
||||
/*
|
||||
On QNX one cannot use fork() in multithreaded environment and we
|
||||
should use spawn() or one of it's siblings instead.
|
||||
Here we use spawnv(), which is a combination of fork() and execv()
|
||||
in one call. It returns the pid of newly created process (>0) or -1
|
||||
*/
|
||||
*pi= spawnv(P_NOWAIT, instance_options->mysqld_path, instance_options->argv);
|
||||
#endif
|
||||
|
||||
switch (*pi) {
|
||||
case 0:
|
||||
case 0: /* never happens on QNX */
|
||||
execv(instance_options->mysqld_path, instance_options->argv);
|
||||
/* exec never returns */
|
||||
exit(1);
|
||||
case 1:
|
||||
log_info("cannot fork() to start instance %s",
|
||||
case -1:
|
||||
log_info("cannot create a new process to start instance %s",
|
||||
instance_options->instance_name);
|
||||
return 1;
|
||||
}
|
||||
|
Reference in New Issue
Block a user