Commit cef13d5b authored by sasha@mysql.sashanet.com's avatar sasha@mysql.sashanet.com
Browse files

temporary commit to pull Monty's changes

parent d2b16298
Loading
Loading
Loading
Loading
+10 −0
Original line number Diff line number Diff line
@@ -51,6 +51,16 @@
#endif
#endif /* _WIN32... */

/* sometimes we want to make sure that the variable is not put into
   a register in debugging mode so we can see its value in the core
*/

#ifndef DBUG_OFF
#define dbug_volatile volatile
#else
#define dbug_volatile
#endif

/*
  The macros below are borrowed from include/linux/compiler.h in the
  Linux kernel. Use them to indicate the likelyhood of the truthfulness
+8 −2
Original line number Diff line number Diff line
@@ -27,7 +27,10 @@

my_off_t my_b_append_tell(IO_CACHE* info)
{
  my_off_t res; 
  /* prevent optimizer from putting res in a register when debugging
     we need this to be able to see the value of res when the assert fails
  */
  dbug_volatile my_off_t res; 
/* we need to lock the append buffer mutex to keep flush_io_cache()
   from messing with the variables that we need in order to provide the
   answer to the question.
@@ -35,8 +38,11 @@ my_off_t my_b_append_tell(IO_CACHE* info)
#ifdef THREAD
  pthread_mutex_lock(&info->append_buffer_lock);
#endif
  /* save the value of my_tell in res so we can see it when studying
     coredump
  */
  DBUG_ASSERT(info->end_of_file - (info->append_read_pos-info->write_buffer)
	      == my_tell(info->file,MYF(0)));
	      == (res=my_tell(info->file,MYF(0))));
  res = info->end_of_file + (info->write_pos-info->append_read_pos);
#ifdef THREAD
  pthread_mutex_unlock(&info->append_buffer_lock);
+3 −0
Original line number Diff line number Diff line
@@ -1418,16 +1418,19 @@ void item_user_lock_release(ULL *ull)
  if (mysql_bin_log.is_open())
  {
    THD *thd = current_thd;
    uint save_query_length;
    char buf[256];
    String tmp(buf,sizeof(buf));
    tmp.length(0);
    tmp.append("DO RELEASE_LOCK(\"");
    tmp.append(ull->key,ull->key_length);
    tmp.append("\")");
    save_query_length=thd->query_length;
    thd->query_length=tmp.length();
    Query_log_event qev(thd,tmp.ptr());
    qev.error_code=0; // this query is always safe to run on slave
    mysql_bin_log.write(&qev);
    thd->query_length=save_query_length;
  }
  if (--ull->count)
    pthread_cond_signal(&ull->cond);