mirror of
https://github.com/MariaDB/server.git
synced 2025-07-30 16:24:05 +03:00
Changes from Novell for NetWare platform
include/my_pthread.h: Consolidated NetWare pthread_exit() changes. mysys/mf_path.c: NetWare needs a semicolon path delimiter. mysys/my_pthread.c: Consolidated NetWare pthread_exit() changes. sql/mini_client.cc: Modified to match my_connect(). sql/mysqld.cc: Consolidated NetWare pthread_exit() changes. sql/slave.cc: Consolidated NetWare pthread_exit() changes. sql/sql_load.cc: Stat properites should not be checked here on NetWare.
This commit is contained in:
@ -247,6 +247,11 @@ extern int my_sigwait(const sigset_t *set,int *sig);
|
|||||||
#error Requires at least rev 2 of EMX pthreads library.
|
#error Requires at least rev 2 of EMX pthreads library.
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#ifdef __NETWARE__
|
||||||
|
void my_pthread_exit(void *status);
|
||||||
|
#define pthread_exit(A) my_pthread_exit(A)
|
||||||
|
#endif
|
||||||
|
|
||||||
extern int my_pthread_getprio(pthread_t thread_id);
|
extern int my_pthread_getprio(pthread_t thread_id);
|
||||||
|
|
||||||
#define pthread_key(T,V) pthread_key_t V
|
#define pthread_key(T,V) pthread_key_t V
|
||||||
|
@ -77,6 +77,9 @@ my_string my_path(my_string to, const char *progname,
|
|||||||
#define F_OK 0
|
#define F_OK 0
|
||||||
#define PATH_SEP ';'
|
#define PATH_SEP ';'
|
||||||
#define PROGRAM_EXTENSION ".exe"
|
#define PROGRAM_EXTENSION ".exe"
|
||||||
|
#elif defined(__NETWARE__)
|
||||||
|
#define PATH_SEP ';'
|
||||||
|
#define PROGRAM_EXTENSION ".nlm"
|
||||||
#else
|
#else
|
||||||
#define PATH_SEP ':'
|
#define PATH_SEP ':'
|
||||||
#endif
|
#endif
|
||||||
|
@ -90,6 +90,29 @@ void *my_pthread_getspecific_imp(pthread_key_t key)
|
|||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#ifdef __NETWARE__
|
||||||
|
/*
|
||||||
|
don't kill the LibC Reaper thread or the main thread
|
||||||
|
*/
|
||||||
|
#include <nks/thread.h>
|
||||||
|
void my_pthread_exit(void *status)
|
||||||
|
{
|
||||||
|
#undef pthread_exit
|
||||||
|
NXThreadId_t tid = NXThreadGetId();
|
||||||
|
NXContext_t ctx;
|
||||||
|
char name[PATH_MAX] = "";
|
||||||
|
|
||||||
|
NXThreadGetContext(tid, &ctx);
|
||||||
|
NXContextGetName(ctx, name, PATH_MAX);
|
||||||
|
|
||||||
|
// "MYSQLD.NLM's LibC Reaper" or "MYSQLD.NLM's main thread"
|
||||||
|
// with a debug build of LibC the reaper can have different names
|
||||||
|
if (!strindex(name, "\'s"))
|
||||||
|
{
|
||||||
|
pthread_exit(status);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
/* Some functions for RTS threads, AIX, Siemens Unix and UnixWare 7
|
/* Some functions for RTS threads, AIX, Siemens Unix and UnixWare 7
|
||||||
(and DEC OSF/1 3.2 too) */
|
(and DEC OSF/1 3.2 too) */
|
||||||
|
@ -243,7 +243,7 @@ static void mc_free_old_query(MYSQL *mysql)
|
|||||||
static int mc_sock_connect(my_socket s, const struct sockaddr *name,
|
static int mc_sock_connect(my_socket s, const struct sockaddr *name,
|
||||||
uint namelen, uint to)
|
uint namelen, uint to)
|
||||||
{
|
{
|
||||||
#if defined(__WIN__) || defined(OS2)
|
#if defined(__WIN__) || defined(OS2) || defined(__NETWARE__)
|
||||||
return connect(s, (struct sockaddr*) name, namelen);
|
return connect(s, (struct sockaddr*) name, namelen);
|
||||||
#else
|
#else
|
||||||
int flags, res, s_err;
|
int flags, res, s_err;
|
||||||
|
@ -797,10 +797,10 @@ static void __cdecl kill_server(int sig_ptr)
|
|||||||
|
|
||||||
#ifdef __NETWARE__
|
#ifdef __NETWARE__
|
||||||
pthread_join(select_thread, NULL); // wait for main thread
|
pthread_join(select_thread, NULL); // wait for main thread
|
||||||
#else
|
|
||||||
pthread_exit(0); /* purecov: deadcode */
|
|
||||||
#endif /* __NETWARE__ */
|
#endif /* __NETWARE__ */
|
||||||
|
|
||||||
|
pthread_exit(0); /* purecov: deadcode */
|
||||||
|
|
||||||
RETURN_FROM_KILL_SERVER;
|
RETURN_FROM_KILL_SERVER;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -856,13 +856,11 @@ void unireg_end(void)
|
|||||||
{
|
{
|
||||||
clean_up(1);
|
clean_up(1);
|
||||||
my_thread_end();
|
my_thread_end();
|
||||||
#ifndef __NETWARE__
|
#if defined(SIGNALS_DONT_BREAK_READ) && !defined(__NETWARE__)
|
||||||
#ifdef SIGNALS_DONT_BREAK_READ
|
|
||||||
exit(0);
|
exit(0);
|
||||||
#else
|
#else
|
||||||
pthread_exit(0); // Exit is in main thread
|
pthread_exit(0); // Exit is in main thread
|
||||||
#endif
|
#endif
|
||||||
#endif /* __NETWARE__ */
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -2355,9 +2355,7 @@ err:
|
|||||||
goto slave_begin;
|
goto slave_begin;
|
||||||
#endif
|
#endif
|
||||||
my_thread_end();
|
my_thread_end();
|
||||||
#ifndef __NETWARE__
|
|
||||||
pthread_exit(0);
|
pthread_exit(0);
|
||||||
#endif /* __NETWARE__ */
|
|
||||||
DBUG_RETURN(0); // Can't return anything here
|
DBUG_RETURN(0); // Can't return anything here
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -2500,9 +2498,7 @@ the slave SQL thread with \"SLAVE START\". We stopped at log \
|
|||||||
goto slave_begin;
|
goto slave_begin;
|
||||||
#endif
|
#endif
|
||||||
my_thread_end(); // clean-up before broadcasting termination
|
my_thread_end(); // clean-up before broadcasting termination
|
||||||
#ifndef __NETWARE__
|
|
||||||
pthread_exit(0);
|
pthread_exit(0);
|
||||||
#endif /* __NETWARE__ */
|
|
||||||
DBUG_RETURN(0); // Can't return anything here
|
DBUG_RETURN(0); // Can't return anything here
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -179,7 +179,7 @@ int mysql_load(THD *thd,sql_exchange *ex,TABLE_LIST *table_list,
|
|||||||
else
|
else
|
||||||
{
|
{
|
||||||
unpack_filename(name,ex->file_name);
|
unpack_filename(name,ex->file_name);
|
||||||
#if !defined(__WIN__) && !defined(OS2)
|
#if !defined(__WIN__) && !defined(OS2) && ! defined(__NETWARE__)
|
||||||
MY_STAT stat_info;
|
MY_STAT stat_info;
|
||||||
if (!my_stat(name,&stat_info,MYF(MY_WME)))
|
if (!my_stat(name,&stat_info,MYF(MY_WME)))
|
||||||
DBUG_RETURN(-1);
|
DBUG_RETURN(-1);
|
||||||
|
Reference in New Issue
Block a user