~drizzle-trunk/drizzle/development

« back to all changes in this revision

Viewing changes to drizzled/drizzled.cc

  • Committer: Brian Aker
  • Date: 2009-02-08 21:17:31 UTC
  • Revision ID: brian@tangent.org-20090208211731-lffufisnysftawvg
Refactor reset of status.

Show diffs side-by-side

added added

removed removed

Lines of Context:
243
243
static bool opt_debugging= 0;
244
244
static uint32_t wake_thread;
245
245
static uint32_t killed_threads, thread_created;
246
 
static uint32_t max_used_connections;
247
246
static char *drizzled_user, *drizzled_chroot;
248
247
static char *language_ptr, *opt_init_connect;
249
248
static char *default_character_set_name;
253
252
static char *default_collation_name;
254
253
static char *default_storage_engine_str;
255
254
static char compiled_default_collation_name[]= DRIZZLE_DEFAULT_COLLATION_NAME;
 
255
static struct pollfd fds[UINT8_MAX];
 
256
static uint8_t pollfd_count= 0;
256
257
 
257
258
/* Global variables */
258
259
 
269
270
bool opt_reckless_slave = 0;
270
271
bool opt_enable_named_pipe= 0;
271
272
bool opt_local_infile;
272
 
bool opt_slave_compressed_protocol;
273
273
bool opt_safe_user_create = 0;
274
274
bool opt_show_slave_auth_info, opt_sql_bin_update = 0;
275
275
bool opt_log_slave_updates= 0;
276
 
static struct pollfd fds[UINT8_MAX];
277
 
static uint8_t pollfd_count= 0;
 
276
uint32_t max_used_connections;
278
277
 
279
278
size_t my_thread_stack_size= 65536;
280
279
 
354
353
  1e300, 1e301, 1e302, 1e303, 1e304, 1e305, 1e306, 1e307, 1e308
355
354
};
356
355
 
357
 
time_t server_start_time, flush_status_time;
 
356
time_t server_start_time;
 
357
time_t flush_status_time;
358
358
 
359
359
char drizzle_home[FN_REFLEN], pidfile_name[FN_REFLEN], system_time_zone[30];
360
360
char *default_tz_name;
568
568
  }
569
569
  (void) pthread_mutex_unlock(&LOCK_thread_count); // For unlink from list
570
570
 
 
571
  /* TODO This is a crappy way to handle this. Fix for proper shutdown. */
571
572
  if (thread_count)
572
573
    sleep(2);                                   // Give threads time to die
573
574
 
3877
3878
  exit(1);
3878
3879
}
3879
3880
 
3880
 
/** Clear most status variables. */
3881
 
void refresh_status(Session *session)
3882
 
{
3883
 
  pthread_mutex_lock(&LOCK_status);
3884
 
 
3885
 
  /* Add thread's status variabes to global status */
3886
 
  add_to_status(&global_status_var, &session->status_var);
3887
 
 
3888
 
  /* Reset thread's status variables */
3889
 
  memset(&session->status_var, 0, sizeof(session->status_var));
3890
 
 
3891
 
  /* Reset some global variables */
3892
 
  reset_status_vars();
3893
 
 
3894
 
  /* Reset the counters of all key caches (default and named). */
3895
 
  process_key_caches(reset_key_cache_counters);
3896
 
  flush_status_time= time((time_t*) 0);
3897
 
  pthread_mutex_unlock(&LOCK_status);
3898
 
 
3899
 
  /*
3900
 
    Set max_used_connections to the number of currently open
3901
 
    connections.  Lock LOCK_thread_count out of LOCK_status to avoid
3902
 
    deadlocks.  Status reset becomes not atomic, but status data is
3903
 
    not exact anyway.
3904
 
  */
3905
 
  pthread_mutex_lock(&LOCK_thread_count);
3906
 
  max_used_connections= thread_count;
3907
 
  pthread_mutex_unlock(&LOCK_thread_count);
3908
 
}
3909
 
 
3910
3881
bool safe_read_error_impl(NET *net)
3911
3882
{
3912
3883
  if (net->vio)