summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorunknown <jani@ua141d10.elisa.omakaista.fi>2005-10-13 18:23:53 +0300
committerunknown <jani@ua141d10.elisa.omakaista.fi>2005-10-13 18:23:53 +0300
commit1e14067736bbff615f63e83129d64a17ad668390 (patch)
tree110201972d71b85d5c8e4bf068770a1ffd6fca61 /include
parent99ed34376fde520a135756480334090db2a609a5 (diff)
parent0d8977475630b214e2c4eecb1a33330cf9f7283b (diff)
downloadmariadb-git-1e14067736bbff615f63e83129d64a17ad668390.tar.gz
Merge ua141d10.elisa.omakaista.fi:/home/my/bk/mysql-4.1-tmp
into ua141d10.elisa.omakaista.fi:/home/my/bk/mysql-5.0 configure.in: Auto merged include/config-win.h: Auto merged include/m_string.h: Auto merged include/my_pthread.h: Auto merged myisam/mi_search.c: Auto merged mysql-test/r/cast.result: Auto merged mysql-test/t/cast.test: Auto merged mysql-test/t/select.test: Auto merged mysys/my_pthread.c: Auto merged mysys/thr_alarm.c: Auto merged netware/pack_isam.def: Auto merged sql/item.h: Auto merged sql/item_cmpfunc.cc: Auto merged strings/ctype-big5.c: Auto merged strings/ctype-tis620.c: Auto merged strings/xml.c: Auto merged vio/vio.c: Auto merged vio/viosocket.c: Auto merged mysql-test/r/select.result: Merged from 4.1. netware/BUILD/mwenv: Merged from 4.1. scripts/make_binary_distribution.sh: Merged from 4.1. sql/mysqld.cc: Merged from 4.1. sql/sql_show.cc: Merged from 4.1. strings/my_strtoll10.c: Merged from 4.1.
Diffstat (limited to 'include')
-rw-r--r--include/config-win.h2
-rw-r--r--include/m_string.h9
-rw-r--r--include/my_pthread.h35
3 files changed, 22 insertions, 24 deletions
diff --git a/include/config-win.h b/include/config-win.h
index 4eaf97cd4f5..fe099c11a2f 100644
--- a/include/config-win.h
+++ b/include/config-win.h
@@ -193,7 +193,7 @@ typedef uint rf_SetTimer;
/* Convert some simple functions to Posix */
-#define sigset(A,B) signal((A),(B))
+#define my_sigset(A,B) signal((A),(B))
#define finite(A) _finite(A)
#define sleep(A) Sleep((A)*1000)
#define popen(A) popen(A,B) _popen((A),(B))
diff --git a/include/m_string.h b/include/m_string.h
index 33ba9c155c2..c02ce92cd88 100644
--- a/include/m_string.h
+++ b/include/m_string.h
@@ -129,15 +129,6 @@ extern void bmove_align(gptr dst,const gptr src,uint len);
#define bmove512(A,B,C) memcpy(A,B,C)
#endif
-#ifdef HAVE_purify
-#define memcpy_overlap(A,B,C) \
-DBUG_ASSERT((A) <= (B) || ((B)+(C)) <= (A)); \
-bmove((byte*) (A),(byte*) (B),(size_t) (C));
-#else
-#define memcpy_overlap(A,B,C) memcpy((A), (B), (C))
-#endif /* HAVE_purify */
-
-
/* Prototypes for string functions */
#if !defined(bfill) && !defined(HAVE_BFILL)
diff --git a/include/my_pthread.h b/include/my_pthread.h
index 1dd1ead7dfa..3d9056541d7 100644
--- a/include/my_pthread.h
+++ b/include/my_pthread.h
@@ -292,8 +292,6 @@ extern int my_pthread_create_detached;
#undef HAVE_PTHREAD_RWLOCK_RDLOCK
#undef HAVE_SNPRINTF
-#define sigset(A,B) pthread_signal((A),(void (*)(int)) (B))
-#define signal(A,B) pthread_signal((A),(void (*)(int)) (B))
#define my_pthread_attr_setprio(A,B)
#endif /* defined(PTHREAD_SCOPE_GLOBAL) && !defined(PTHREAD_SCOPE_SYSTEM) */
@@ -325,14 +323,26 @@ extern int my_pthread_cond_init(pthread_cond_t *mp,
#if !defined(HAVE_SIGWAIT) && !defined(HAVE_mit_thread) && !defined(HAVE_rts_threads) && !defined(sigwait) && !defined(alpha_linux_port) && !defined(HAVE_NONPOSIX_SIGWAIT) && !defined(HAVE_DEC_3_2_THREADS) && !defined(_AIX)
int sigwait(sigset_t *setp, int *sigp); /* Use our implemention */
#endif
-#if !defined(HAVE_SIGSET) && !defined(HAVE_mit_thread) && !defined(sigset)
-#define sigset(A,B) do { struct sigaction s; sigset_t set; \
- sigemptyset(&set); \
- s.sa_handler = (B); \
- s.sa_mask = set; \
- s.sa_flags = 0; \
- sigaction((A), &s, (struct sigaction *) NULL); \
- } while (0)
+
+
+/*
+ We define my_sigset() and use that instead of the system sigset() so that
+ we can favor an implementation based on sigaction(). On some systems, such
+ as Mac OS X, sigset() results in flags such as SA_RESTART being set, and
+ we want to make sure that no such flags are set.
+*/
+#if defined(HAVE_SIGACTION) && !defined(my_sigset)
+#define my_sigset(A,B) do { struct sigaction s; sigset_t set; \
+ sigemptyset(&set); \
+ s.sa_handler = (B); \
+ s.sa_mask = set; \
+ s.sa_flags = 0; \
+ sigaction((A), &s, (struct sigaction *) NULL); \
+ } while (0)
+#elif defined(HAVE_SIGSET) && !defined(my_sigset)
+#define my_sigset(A,B) sigset((A),(B))
+#elif !defined(my_sigset)
+#define my_sigset(A,B) signal((A),(B))
#endif
#ifndef my_pthread_setprio
@@ -412,16 +422,13 @@ struct tm *gmtime_r(const time_t *clock, struct tm *res);
#define pthread_detach_this_thread() { pthread_t tmp=pthread_self() ; pthread_detach(&tmp); }
#endif
-#ifdef HAVE_DARWIN_THREADS
+#ifdef HAVE_DARWIN5_THREADS
#define pthread_sigmask(A,B,C) sigprocmask((A),(B),(C))
#define pthread_kill(A,B) pthread_dummy(0)
#define pthread_condattr_init(A) pthread_dummy(0)
#define pthread_condattr_destroy(A) pthread_dummy(0)
-#define pthread_signal(A,B) pthread_dummy(0)
#undef pthread_detach_this_thread
#define pthread_detach_this_thread() { pthread_t tmp=pthread_self() ; pthread_detach(tmp); }
-#undef sigset
-#define sigset(A,B) pthread_signal((A),(void (*)(int)) (B))
#endif
#if ((defined(HAVE_PTHREAD_ATTR_CREATE) && !defined(HAVE_SIGWAIT)) || defined(HAVE_DEC_3_2_THREADS)) && !defined(HAVE_CTHREADS_WRAPPER)