Download | Plain Text | No Line Numbers


  1. --- a/lib/glibUtils/fileLogger.c 2012-11-01 00:59:53.000000000 +0100
  2. +++ b/lib/glibUtils/fileLogger.c 2013-02-26 17:12:45.084792332 +0100
  3. @@ -43,7 +43,7 @@
  4. guint maxFiles;
  5. gboolean append;
  6. gboolean error;
  7. - GStaticRWLock lock;
  8. + GRWLock rw_lock;
  9. } FileLogger;
  10.  
  11.  
  12. @@ -254,7 +254,7 @@
  13. {
  14. FileLogger *logger = data;
  15.  
  16. - g_static_rw_lock_reader_lock(&logger->lock);
  17. + g_rw_lock_reader_lock(&logger->rw_lock);
  18.  
  19. if (logger->error) {
  20. goto exit;
  21. @@ -265,13 +265,13 @@
  22. * We need to drop the read lock and acquire a write lock to open
  23. * the log file.
  24. */
  25. - g_static_rw_lock_reader_unlock(&logger->lock);
  26. - g_static_rw_lock_writer_lock(&logger->lock);
  27. + g_rw_lock_reader_unlock(&logger->rw_lock);
  28. + g_rw_lock_writer_lock(&logger->rw_lock);
  29. if (logger->file == NULL) {
  30. logger->file = FileLoggerOpen(data);
  31. }
  32. - g_static_rw_lock_writer_unlock(&logger->lock);
  33. - g_static_rw_lock_reader_lock(&logger->lock);
  34. + g_rw_lock_writer_unlock(&logger->rw_lock);
  35. + g_rw_lock_reader_lock(&logger->rw_lock);
  36. if (logger->file == NULL) {
  37. logger->error = TRUE;
  38. goto exit;
  39. @@ -288,15 +288,15 @@
  40. #endif
  41. if (g_atomic_int_get(&logger->logSize) >= logger->maxSize) {
  42. /* Drop the reader lock, grab the writer lock and re-check. */
  43. - g_static_rw_lock_reader_unlock(&logger->lock);
  44. - g_static_rw_lock_writer_lock(&logger->lock);
  45. + g_rw_lock_reader_unlock(&logger->rw_lock);
  46. + g_rw_lock_writer_lock(&logger->rw_lock);
  47. if (g_atomic_int_get(&logger->logSize) >= logger->maxSize) {
  48. fclose(logger->file);
  49. logger->append = FALSE;
  50. logger->file = FileLoggerOpen(logger);
  51. }
  52. - g_static_rw_lock_writer_unlock(&logger->lock);
  53. - g_static_rw_lock_reader_lock(&logger->lock);
  54. + g_rw_lock_writer_unlock(&logger->rw_lock);
  55. + g_rw_lock_reader_lock(&logger->rw_lock);
  56. } else {
  57. fflush(logger->file);
  58. }
  59. @@ -306,7 +306,7 @@
  60. }
  61.  
  62. exit:
  63. - g_static_rw_lock_reader_unlock(&logger->lock);
  64. + g_rw_lock_reader_unlock(&logger->rw_lock);
  65. }
  66.  
  67.  
  68. @@ -328,7 +328,7 @@
  69. if (logger->file != NULL) {
  70. fclose(logger->file);
  71. }
  72. - g_static_rw_lock_free(&logger->lock);
  73. + g_rw_lock_clear(&logger->rw_lock);
  74. g_free(logger->path);
  75. g_free(logger);
  76. }
  77. @@ -375,7 +375,7 @@
  78. data->append = append;
  79. data->maxSize = maxSize * 1024 * 1024;
  80. data->maxFiles = maxFiles + 1; /* To account for the active log file. */
  81. - g_static_rw_lock_init(&data->lock);
  82. + g_rw_lock_init(&data->rw_lock);
  83.  
  84. return &data->handler;
  85. }
  86. --- a/lib/rpcChannel/bdoorChannel.c 2012-11-01 00:58:56.000000000 +0100
  87. +++ b/lib/rpcChannel/bdoorChannel.c 2013-02-26 17:20:12.386291149 +0100
  88. @@ -34,7 +34,7 @@
  89.  
  90. typedef struct BackdoorChannel {
  91. GMainContext *mainCtx;
  92. - GStaticMutex outLock;
  93. + GMutex outLock;
  94. RpcIn *in;
  95. RpcOut *out;
  96. gboolean inStarted;
  97. @@ -119,7 +119,7 @@
  98. {
  99. BackdoorChannel *bdoor = chan->_private;
  100.  
  101. - g_static_mutex_lock(&bdoor->outLock);
  102. + g_mutex_lock(&bdoor->outLock);
  103. if (bdoor->out != NULL) {
  104. if (bdoor->outStarted) {
  105. RpcOut_stop(bdoor->out);
  106. @@ -128,7 +128,7 @@
  107. } else {
  108. ASSERT(!bdoor->outStarted);
  109. }
  110. - g_static_mutex_unlock(&bdoor->outLock);
  111. + g_mutex_unlock(&bdoor->outLock);
  112.  
  113. if (bdoor->in != NULL) {
  114. if (bdoor->inStarted) {
  115. @@ -158,7 +158,7 @@
  116. RpcIn_Destruct(bdoor->in);
  117. }
  118. RpcOut_Destruct(bdoor->out);
  119. - g_static_mutex_free(&bdoor->outLock);
  120. + g_mutex_clear(&bdoor->outLock);
  121. if (bdoor->mainCtx != NULL) {
  122. g_main_context_unref(bdoor->mainCtx);
  123. }
  124. @@ -190,7 +190,7 @@
  125. size_t replyLen;
  126. BackdoorChannel *bdoor = chan->_private;
  127.  
  128. - g_static_mutex_lock(&bdoor->outLock);
  129. + g_mutex_lock(&bdoor->outLock);
  130. if (!bdoor->outStarted) {
  131. goto exit;
  132. }
  133. @@ -248,7 +248,7 @@
  134. }
  135.  
  136. exit:
  137. - g_static_mutex_unlock(&bdoor->outLock);
  138. + g_mutex_unlock(&bdoor->outLock);
  139. return ret;
  140. }
  141.  
  142. @@ -268,7 +268,7 @@
  143. ret = RpcChannel_Create();
  144. bdoor = g_malloc0(sizeof *bdoor);
  145.  
  146. - g_static_mutex_init(&bdoor->outLock);
  147. + g_mutex_init(&bdoor->outLock);
  148. bdoor->out = RpcOut_Construct();
  149. ASSERT(bdoor->out != NULL);
  150.  
  151. --- a/libvmtools/i18n.c 2013-02-26 16:57:40.149995816 +0100
  152. +++ b/libvmtools/i18n.c 2013-02-26 17:20:35.740847258 +0100
  153. @@ -54,7 +54,7 @@
  154.  
  155. typedef struct MsgState {
  156. HashTable *domains; /* List of text domains. */
  157. - GStaticMutex lock; /* Mutex to protect shared state. */
  158. + GMutex lock; /* Mutex to protect shared state. */
  159. } MsgState;
  160.  
  161.  
  162. @@ -132,7 +132,7 @@
  163. {
  164. ASSERT(gMsgState == NULL);
  165. gMsgState = g_new0(MsgState, 1);
  166. - g_static_mutex_init(&gMsgState->lock);
  167. + g_mutex_init(&gMsgState->lock);
  168. return NULL;
  169. }
  170.  
  171. @@ -343,7 +343,7 @@
  172. * This lock is pretty coarse-grained, but a lot of the code below just runs
  173. * in exceptional situations, so it should be OK.
  174. */
  175. - g_static_mutex_lock(&state->lock);
  176. + g_mutex_lock(&state->lock);
  177.  
  178. catalog = MsgGetCatalog(domain);
  179. if (catalog != NULL) {
  180. @@ -414,7 +414,7 @@
  181. }
  182. }
  183.  
  184. - g_static_mutex_unlock(&state->lock);
  185. + g_mutex_unlock(&state->lock);
  186.  
  187. return strp;
  188. }
  189. @@ -681,7 +681,7 @@
  190. if (gMsgState->domains != NULL) {
  191. HashTable_Free(gMsgState->domains);
  192. }
  193. - g_static_mutex_free(&gMsgState->lock);
  194. + g_mutex_clear(&gMsgState->lock);
  195. g_free(gMsgState);
  196. }
  197. }
  198. @@ -774,9 +774,9 @@
  199. "catalog dir '%s'.\n", domain, lang, catdir);
  200. }
  201. } else {
  202. - g_static_mutex_lock(&state->lock);
  203. + g_mutex_lock(&state->lock);
  204. MsgSetCatalog(domain, catalog);
  205. - g_static_mutex_unlock(&state->lock);
  206. + g_mutex_unlock(&state->lock);
  207. }
  208. g_free(file);
  209. free(dfltdir);
  210. --- a/libvmtools/vmxLogger.c 2012-11-01 00:58:28.000000000 +0100
  211. +++ b/libvmtools/vmxLogger.c 2013-02-26 17:20:21.628115494 +0100
  212. @@ -27,7 +27,7 @@
  213.  
  214. typedef struct VMXLoggerData {
  215. GlibLogger handler;
  216. - GStaticMutex lock;
  217. + GMutex lock;
  218. RpcChannel *chan;
  219. } VMXLoggerData;
  220.  
  221. @@ -60,7 +60,7 @@
  222. {
  223. VMXLoggerData *logger = data;
  224.  
  225. - g_static_mutex_lock(&logger->lock);
  226. + g_mutex_lock(&logger->lock);
  227. if (RpcChannel_Start(logger->chan)) {
  228. gchar *msg;
  229. gint cnt = VMToolsAsprintf(&msg, "log %s", message);
  230. @@ -75,7 +75,7 @@
  231. g_free(msg);
  232. RpcChannel_Stop(logger->chan);
  233. }
  234. - g_static_mutex_unlock(&logger->lock);
  235. + g_mutex_unlock(&logger->lock);
  236. }
  237.  
  238.  
  239. @@ -95,7 +95,7 @@
  240. {
  241. VMXLoggerData *logger = data;
  242. RpcChannel_Destroy(logger->chan);
  243. - g_static_mutex_free(&logger->lock);
  244. + g_mutex_clear(&logger->lock);
  245. g_free(logger);
  246. }
  247.  
  248. @@ -119,7 +119,7 @@
  249. data->handler.addsTimestamp = TRUE;
  250. data->handler.shared = TRUE;
  251. data->handler.dtor = VMXLoggerDestroy;
  252. - g_static_mutex_init(&data->lock);
  253. + g_mutex_init(&data->lock);
  254. data->chan = BackdoorChannel_New();
  255. return &data->handler;
  256. }
  257. --- a/services/vmtoolsd/mainLoop.c 2012-11-01 00:58:56.000000000 +0100
  258. +++ b/services/vmtoolsd/mainLoop.c 2013-02-26 03:08:39.640930774 +0100
  259. @@ -376,10 +376,6 @@
  260. GMainContext *gctx;
  261. ToolsServiceProperty ctxProp = { TOOLS_CORE_PROP_CTX };
  262.  
  263. - if (!g_thread_supported()) {
  264. - g_thread_init(NULL);
  265. - }
  266. -
  267. ToolsCore_ReloadConfig(state, FALSE);
  268.  
  269. /* Initializes the app context. */
  270. --- a/services/vmtoolsd/serviceObj.c 2012-11-01 00:58:56.000000000 +0100
  271. +++ b/services/vmtoolsd/serviceObj.c 2013-02-26 17:20:39.979766691 +0100
  272. @@ -180,14 +180,14 @@
  273.  
  274. id -= 1;
  275.  
  276. - g_mutex_lock(self->lock);
  277. + g_mutex_lock(&self->lock);
  278.  
  279. if (id < self->props->len) {
  280. ServiceProperty *p = &g_array_index(self->props, ServiceProperty, id);
  281. g_value_set_pointer(value, p->value);
  282. }
  283.  
  284. - g_mutex_unlock(self->lock);
  285. + g_mutex_unlock(&self->lock);
  286. }
  287.  
  288.  
  289. @@ -217,14 +217,14 @@
  290.  
  291. id -= 1;
  292.  
  293. - g_mutex_lock(self->lock);
  294. + g_mutex_lock(&self->lock);
  295.  
  296. if (id < self->props->len) {
  297. p = &g_array_index(self->props, ServiceProperty, id);
  298. p->value = g_value_get_pointer(value);
  299. }
  300.  
  301. - g_mutex_unlock(self->lock);
  302. + g_mutex_unlock(&self->lock);
  303.  
  304. if (p != NULL) {
  305. g_object_notify(object, p->name);
  306. @@ -260,7 +260,7 @@
  307. params);
  308.  
  309. self = TOOLSCORE_SERVICE(object);
  310. - self->lock = g_mutex_new();
  311. + g_mutex_init(&self->lock);
  312. self->props = g_array_new(FALSE, FALSE, sizeof (ServiceProperty));
  313.  
  314. return object;
  315. @@ -296,7 +296,7 @@
  316. }
  317.  
  318. g_array_free(self->props, TRUE);
  319. - g_mutex_free(self->lock);
  320. + g_mutex_clear(&self->lock);
  321. }
  322.  
  323.  
  324. @@ -459,7 +459,7 @@
  325. prop->name,
  326. G_PARAM_READWRITE);
  327.  
  328. - g_mutex_lock(obj->lock);
  329. + g_mutex_lock(&obj->lock);
  330.  
  331. sprop.id = ++PROP_ID_SEQ;
  332. sprop.name = g_strdup(prop->name);
  333. @@ -467,6 +467,6 @@
  334. g_array_append_val(obj->props, sprop);
  335. g_object_class_install_property(G_OBJECT_CLASS(klass), sprop.id, pspec);
  336.  
  337. - g_mutex_unlock(obj->lock);
  338. + g_mutex_unlock(&obj->lock);
  339. }
  340.  
  341. --- a/services/vmtoolsd/serviceObj.h 2012-11-01 00:58:56.000000000 +0100
  342. +++ b/services/vmtoolsd/serviceObj.h 2013-02-26 17:06:07.693344949 +0100
  343. @@ -39,7 +39,7 @@
  344.  
  345. typedef struct ToolsCoreService {
  346. GObject parent;
  347. - GMutex *lock;
  348. + GMutex lock;
  349. GArray *props;
  350. } ToolsCoreService;
  351.  
  352. --- a/services/vmtoolsd/threadPool.c 2012-11-01 00:58:56.000000000 +0100
  353. +++ b/services/vmtoolsd/threadPool.c 2013-02-26 17:20:45.088669587 +0100
  354. @@ -40,7 +40,7 @@
  355. GThreadPool *pool;
  356. GQueue *workQueue;
  357. GPtrArray *threads;
  358. - GMutex *lock;
  359. + GMutex lock;
  360. guint nextWorkId;
  361. } ThreadPoolState;
  362.  
  363. @@ -170,9 +170,9 @@
  364. * In multi-threaded mode, the thread pool callback already did this.
  365. */
  366. if (gState.pool == NULL) {
  367. - g_mutex_lock(gState.lock);
  368. + g_mutex_lock(&gState.lock);
  369. g_queue_remove(gState.workQueue, work);
  370. - g_mutex_unlock(gState.lock);
  371. + g_mutex_unlock(&gState.lock);
  372. }
  373.  
  374. work->cb(gState.ctx, work->data);
  375. @@ -223,7 +223,7 @@
  376. task->cb(gState.ctx, task->data);
  377. task->active = FALSE;
  378.  
  379. - g_mutex_lock(gState.lock);
  380. + g_mutex_lock(&gState.lock);
  381. /* If not active, the shutdown function will clean things up. */
  382. if (gState.active) {
  383. g_ptr_array_remove(gState.threads, task);
  384. @@ -232,7 +232,7 @@
  385. task,
  386. ToolsCorePoolDestroyThread);
  387. }
  388. - g_mutex_unlock(gState.lock);
  389. + g_mutex_unlock(&gState.lock);
  390.  
  391. return NULL;
  392. }
  393. @@ -257,9 +257,9 @@
  394. {
  395. WorkerTask *work;
  396.  
  397. - g_mutex_lock(gState.lock);
  398. + g_mutex_lock(&gState.lock);
  399. work = g_queue_pop_tail(gState.workQueue);
  400. - g_mutex_unlock(gState.lock);
  401. + g_mutex_unlock(&gState.lock);
  402.  
  403. ASSERT(work != NULL);
  404.  
  405. @@ -300,7 +300,7 @@
  406. task->data = data;
  407. task->dtor = dtor;
  408.  
  409. - g_mutex_lock(gState.lock);
  410. + g_mutex_lock(&gState.lock);
  411.  
  412. if (!gState.active) {
  413. g_free(task);
  414. @@ -351,7 +351,7 @@
  415. ToolsCorePoolDestroyTask);
  416.  
  417. exit:
  418. - g_mutex_unlock(gState.lock);
  419. + g_mutex_unlock(&gState.lock);
  420. return id;
  421. }
  422.  
  423. @@ -378,7 +378,7 @@
  424.  
  425. g_return_if_fail(id != 0);
  426.  
  427. - g_mutex_lock(gState.lock);
  428. + g_mutex_lock(&gState.lock);
  429. if (!gState.active) {
  430. goto exit;
  431. }
  432. @@ -390,7 +390,7 @@
  433. }
  434.  
  435. exit:
  436. - g_mutex_unlock(gState.lock);
  437. + g_mutex_unlock(&gState.lock);
  438.  
  439. if (task != NULL) {
  440. if (task->srcId > 0) {
  441. @@ -431,7 +431,7 @@
  442. GError *err = NULL;
  443. StandaloneTask *task = NULL;
  444.  
  445. - g_mutex_lock(gState.lock);
  446. + g_mutex_lock(&gState.lock);
  447. if (!gState.active) {
  448. goto exit;
  449. }
  450. @@ -442,7 +442,7 @@
  451. task->interrupt = interrupt;
  452. task->data = data;
  453. task->dtor = dtor;
  454. - task->thread = g_thread_create(ToolsCorePoolRunThread, task, TRUE, &err);
  455. + task->thread = g_thread_try_new("tasks", ToolsCorePoolRunThread, task, &err);
  456.  
  457. if (err == NULL) {
  458. g_ptr_array_add(gState.threads, task);
  459. @@ -454,7 +454,7 @@
  460. }
  461.  
  462. exit:
  463. - g_mutex_unlock(gState.lock);
  464. + g_mutex_unlock(&gState.lock);
  465. return task != NULL;
  466. }
  467.  
  468. @@ -526,7 +526,7 @@
  469. }
  470.  
  471. gState.active = TRUE;
  472. - gState.lock = g_mutex_new();
  473. + g_mutex_init(&gState.lock);
  474. gState.threads = g_ptr_array_new();
  475. gState.workQueue = g_queue_new();
  476.  
  477. @@ -553,9 +553,9 @@
  478. {
  479. guint i;
  480.  
  481. - g_mutex_lock(gState.lock);
  482. + g_mutex_lock(&gState.lock);
  483. gState.active = FALSE;
  484. - g_mutex_unlock(gState.lock);
  485. + g_mutex_unlock(&gState.lock);
  486.  
  487. /* Notify all spawned threads to stop. */
  488. for (i = 0; i < gState.threads->len; i++) {
  489. @@ -589,7 +589,7 @@
  490. /* Cleanup. */
  491. g_ptr_array_free(gState.threads, TRUE);
  492. g_queue_free(gState.workQueue);
  493. - g_mutex_free(gState.lock);
  494. + g_mutex_clear(&gState.lock);
  495. memset(&gState, 0, sizeof gState);
  496. g_object_set(ctx->serviceObj, TOOLS_CORE_PROP_TPOOL, NULL, NULL);
  497. }
  498.