Pages

2009年2月18日 星期三

GTK+ 也支援 atomic operation

  本來期望C語言的API有支援,不過搜尋一下/usr/include的標頭檔卻找不到,倒是找到C++和GTK+有支援,所以就去翻一下/usr/include/glib-2.0/glib/gatomic.h,以下是簡單的使用範例:
##ReadMore##
#include <gtk/gtk.h>
#include <stdio.h>

gint atomic;

gboolean test(gpointer data)
{
g_atomic_int_add(&atomic, 1);
gint get_atomic = g_atomic_int_get(&atomic);

if(get_atomic <= 10)
{
g_print("atomic val = %d\n", get_atomic);
return TRUE;
}
else
gtk_main_quit();
}


int main(int argc, char *argv[])
{
gtk_init(&argc, &argv);
g_timeout_add(1000,test,NULL);

g_atomic_int_add(&atomic, 1);
g_print("atomic val = %d\n", g_atomic_int_get(&atomic));

gtk_main();
return 0;
}

  提醒一下,編譯時記得加上`pkg-config gtk+-2.0 --libs --cflags`,否則會找不到相關的函式庫與標頭檔。

1 則留言:

Eric 提到...

也有 g_mutex 可以使用。

 
Blogger Templates