2012-10-10 69 views
2

64bit linux中的sem_t是32字節,但是用futex實現,8字節就足夠了(glibc sem_post),這是真的嗎?如果這是真的,爲什麼使它浪費字節?爲什麼sem_t在64位linux中是32字節?

其實我想使用一個只使用8字節的自定義信號量實現,因此使用一個信號量到一個日期條目是可能的。但我不確定glibc實現中的其他字節只是填充。

只是爲了我的instrest,我不打算在工作中使用自定義信號量。

+1

MAYBE給他人或未來的實施....爲什麼你關心? –

回答

2

AFAIK glibc需要跨不同的Linux內核和不同的線程模塊進行移植。因此,如果其他系統需要額外的簿記空間,則爲該結構保留32字節的空間(4個機器字)。

如果你想用futexes做你自己的事情,就往前走吧;正如你所說,你只需要8個字節就可以用一個futex來完成。

相關問題