ccache發(fā)布0.2版本,主要改動(dòng):
cmpfun函數(shù)指針去掉了size參數(shù), 因?yàn)槲艺J(rèn)為這個(gè)參數(shù)應(yīng)該由使用該cache的用戶去關(guān)心,見test/testcache.c中的示例代碼
加入兩個(gè)api:update_or_insert_data和visit_cache
同時(shí)還有unlock_cache api,因?yàn)槟承┦褂肅++的用戶如果使用了C++的異常處理,在調(diào)用ccache中的API時(shí)拋出異常將導(dǎo)致ccache沒(méi)有解鎖
, 以后就不能再使用了, 提供這個(gè)API是為了在拋出異常的時(shí)候用戶自己釋放鎖
另外,這個(gè)版本還修正了原來(lái)的兩個(gè)低級(jí)錯(cuò)誤:第一個(gè)是在ccache.h中加入了對(duì)__cplusplus宏的處理,如果不加入這個(gè)宏的處理,那么如果用gcc編譯了
ccache,而用g++編譯鏈接生成的靜態(tài)庫(kù)將導(dǎo)致鏈接錯(cuò)誤;第二個(gè)將makefile中的
testcache:test/testcache.c $(OBJS)
$(CC) -o $(TESTCACHE) $(OBJS) $(TESTDIR)/*.c -L$(LIB_DIR) -l$(LIBNAME) $(CFLAGS) $(INCLUDE) -lpthread
改成了:
testcache:test/testcache.c $(LIB)
$(CC) -o $(TESTCACHE) $(TESTDIR)/*.c -L$(LIB_DIR) -l$(LIBNAME) $(CFLAGS) $(INCLUDE) -lpthread
另外,由于與samba的一個(gè)開源項(xiàng)目有名字沖突,下一個(gè)版本開始可能要使用這個(gè)項(xiàng)目在googlecode注冊(cè)時(shí)的完整項(xiàng)目名稱:commoncache.