Commit fe341ad9 authored by msvensson@shellback's avatar msvensson@shellback

Add macro for retrieving sec part of "struct timespec"

Use macros for working with "struct timespec" in event_queue.cc
Fix merge problem
parent 1feb1887
...@@ -56,11 +56,6 @@ typedef struct { ...@@ -56,11 +56,6 @@ typedef struct {
} pthread_cond_t; } pthread_cond_t;
struct timespec { /* For pthread_cond_timedwait() */
time_t tv_sec;
long tv_nsec;
};
typedef int pthread_mutexattr_t; typedef int pthread_mutexattr_t;
#define win_pthread_self my_thread_var->pthread_self #define win_pthread_self my_thread_var->pthread_self
#define pthread_handler_t EXTERNC void * __cdecl #define pthread_handler_t EXTERNC void * __cdecl
...@@ -93,6 +88,7 @@ struct timespec { ...@@ -93,6 +88,7 @@ struct timespec {
GetSystemTimeAsFileTime(&((ABSTIME).start.ft)); \ GetSystemTimeAsFileTime(&((ABSTIME).start.ft)); \
(ABSTIME).timeout_msec= (long)((NSEC)/1000000); \ (ABSTIME).timeout_msec= (long)((NSEC)/1000000); \
} }
#define get_timespec_sec(ABSTIME) ((((ABSTIME).start.i64 / 10000) + (ABSTIME).timeout_msec ) / 1000)
void win_pthread_init(void); void win_pthread_init(void);
int win_pthread_setspecific(void *A,void *B,uint length); int win_pthread_setspecific(void *A,void *B,uint length);
...@@ -414,6 +410,9 @@ int my_pthread_mutex_trylock(pthread_mutex_t *mutex); ...@@ -414,6 +410,9 @@ int my_pthread_mutex_trylock(pthread_mutex_t *mutex);
(ABSTIME).ts_nsec= (now % ULL(10000000) * 100 + ((NSEC) % 100)); \ (ABSTIME).ts_nsec= (now % ULL(10000000) * 100 + ((NSEC) % 100)); \
} }
#endif /* !set_timespec_nsec */ #endif /* !set_timespec_nsec */
#ifndef get_timespec_sec
#define get_timespec_sec(ABSTIME) (ABSTIME).ts_sec
#endif /* !get_timespec_sec */
#else #else
#ifndef set_timespec #ifndef set_timespec
#define set_timespec(ABSTIME,SEC) \ #define set_timespec(ABSTIME,SEC) \
...@@ -432,6 +431,9 @@ int my_pthread_mutex_trylock(pthread_mutex_t *mutex); ...@@ -432,6 +431,9 @@ int my_pthread_mutex_trylock(pthread_mutex_t *mutex);
(ABSTIME).tv_nsec= (long) (now % ULL(10000000) * 100 + ((NSEC) % 100)); \ (ABSTIME).tv_nsec= (long) (now % ULL(10000000) * 100 + ((NSEC) % 100)); \
} }
#endif /* !set_timespec_nsec */ #endif /* !set_timespec_nsec */
#ifndef get_timespec_sec
#define get_timespec_sec(ABSTIME) (ABSTIME).tv_sec
#endif /* !get_timespec_sec */
#endif /* HAVE_TIMESPEC_TS_SEC */ #endif /* HAVE_TIMESPEC_TS_SEC */
/* safe_mutex adds checking to mutex for easier debugging */ /* safe_mutex adds checking to mutex for easier debugging */
......
...@@ -719,7 +719,6 @@ Event_queue::get_top_for_execution_if_time(THD *thd, Event_job_data **job_data) ...@@ -719,7 +719,6 @@ Event_queue::get_top_for_execution_if_time(THD *thd, Event_job_data **job_data)
*job_data= NULL; *job_data= NULL;
DBUG_ENTER("Event_queue::get_top_for_execution_if_time"); DBUG_ENTER("Event_queue::get_top_for_execution_if_time");
top_time.tv_nsec= 0;
LOCK_QUEUE_DATA(); LOCK_QUEUE_DATA();
for (;;) for (;;)
{ {
...@@ -732,12 +731,12 @@ Event_queue::get_top_for_execution_if_time(THD *thd, Event_job_data **job_data) ...@@ -732,12 +731,12 @@ Event_queue::get_top_for_execution_if_time(THD *thd, Event_job_data **job_data)
if (queue.elements) if (queue.elements)
{ {
top= ((Event_queue_element*) queue_element(&queue, 0)); top= ((Event_queue_element*) queue_element(&queue, 0));
top_time.tv_sec= sec_since_epoch_TIME(&top->execute_at); set_timespec(top_time, sec_since_epoch_TIME(&top->execute_at));
abstime= &top_time; abstime= &top_time;
} }
if (!abstime || abstime->tv_sec > now) if (!abstime || get_timespec_sec(*abstime) > now)
{ {
const char *msg; const char *msg;
if (abstime) if (abstime)
...@@ -816,8 +815,8 @@ Event_queue::get_top_for_execution_if_time(THD *thd, Event_job_data **job_data) ...@@ -816,8 +815,8 @@ Event_queue::get_top_for_execution_if_time(THD *thd, Event_job_data **job_data)
if (to_free) if (to_free)
delete top; delete top;
DBUG_PRINT("info", ("returning %d et_new: 0x%lx abstime.tv_sec: %ld ", DBUG_PRINT("info", ("returning %d et_new: 0x%lx get_timespec_sec(abstime): %ld ",
ret, (long) *job_data, abstime ? abstime->tv_sec : 0)); ret, (long) *job_data, abstime ? get_timespec_sec(*abstime) : 0));
if (*job_data) if (*job_data)
DBUG_PRINT("info", ("db: %s name: %s definer=%s", (*job_data)->dbname.str, DBUG_PRINT("info", ("db: %s name: %s definer=%s", (*job_data)->dbname.str,
......
...@@ -5558,8 +5558,8 @@ unpack_row(RELAY_LOG_INFO *rli, ...@@ -5558,8 +5558,8 @@ unpack_row(RELAY_LOG_INFO *rli,
if (bitmap_is_set(cols, field_ptr - begin_ptr)) if (bitmap_is_set(cols, field_ptr - begin_ptr))
{ {
DBUG_ASSERT(table->record[0] <= f->ptr); DBUG_ASSERT((char*)table->record[0] <= f->ptr);
DBUG_ASSERT(f->ptr < (table->record[0] + table->s->reclength + DBUG_ASSERT(f->ptr < (char*)(table->record[0] + table->s->reclength +
(f->pack_length_in_rec() == 0))); (f->pack_length_in_rec() == 0)));
DBUG_PRINT("info", ("unpacking column '%s' to 0x%lx", f->field_name, DBUG_PRINT("info", ("unpacking column '%s' to 0x%lx", f->field_name,
...@@ -6843,8 +6843,8 @@ static int find_and_fetch_row(TABLE *table, byte *key) ...@@ -6843,8 +6843,8 @@ static int find_and_fetch_row(TABLE *table, byte *key)
trigger false warnings. trigger false warnings.
*/ */
#ifndef HAVE_purify #ifndef HAVE_purify
DBUG_DUMP("table->record[0]", table->record[0], table->s->reclength); DBUG_DUMP("table->record[0]", (const char*)table->record[0], table->s->reclength);
DBUG_DUMP("table->record[1]", table->record[1], table->s->reclength); DBUG_DUMP("table->record[1]", (const char*)table->record[1], table->s->reclength);
#endif #endif
/* /*
...@@ -6870,8 +6870,8 @@ static int find_and_fetch_row(TABLE *table, byte *key) ...@@ -6870,8 +6870,8 @@ static int find_and_fetch_row(TABLE *table, byte *key)
trigger false warnings. trigger false warnings.
*/ */
#ifndef HAVE_purify #ifndef HAVE_purify
DBUG_DUMP("table->record[0]", table->record[0], table->s->reclength); DBUG_DUMP("table->record[0]", (const char*)table->record[0], table->s->reclength);
DBUG_DUMP("table->record[1]", table->record[1], table->s->reclength); DBUG_DUMP("table->record[1]", (const char*)table->record[1], table->s->reclength);
#endif #endif
/* /*
Below is a minor "optimization". If the key (i.e., key number Below is a minor "optimization". If the key (i.e., key number
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment