提交 f0afe29c authored 作者: Shane Bryldt's avatar Shane Bryldt

FS-10167: Temporary commit to test some weirdness with pool freeing and memory mapping

上级 130dba89
...@@ -628,6 +628,10 @@ static int free_pointer(ks_pool_t *mp_p, void *addr, const unsigned long size) ...@@ -628,6 +628,10 @@ static int free_pointer(ks_pool_t *mp_p, void *addr, const unsigned long size)
real_size = size; real_size = size;
} }
while ((real_size & (sizeof(void *) - 1)) > 0) {
real_size++;
}
/* /*
* We use a specific free bits calculation here because if we are * We use a specific free bits calculation here because if we are
* freeing 10 bytes then we will be putting it into the 8-byte free * freeing 10 bytes then we will be putting it into the 8-byte free
...@@ -1044,7 +1048,7 @@ static int free_mem(ks_pool_t *mp_p, void *addr) ...@@ -1044,7 +1048,7 @@ static int free_mem(ks_pool_t *mp_p, void *addr)
fence = FENCE_SIZE; fence = FENCE_SIZE;
/* now we free the pointer */ /* now we free the pointer */
ret = free_pointer(mp_p, addr, old_size + fence); ret = free_pointer(mp_p, addr, old_size + fence + PREFIX_SIZE);
if (ret != KS_STATUS_SUCCESS) { if (ret != KS_STATUS_SUCCESS) {
return ret; return ret;
} }
......
...@@ -93,9 +93,9 @@ static void ks_thread_cleanup(ks_pool_t *mpool, void *ptr, void *arg, int type, ...@@ -93,9 +93,9 @@ static void ks_thread_cleanup(ks_pool_t *mpool, void *ptr, void *arg, int type,
break; break;
case KS_MPCL_DESTROY: case KS_MPCL_DESTROY:
#ifdef WIN32 #ifdef WIN32
if (!(thread->flags & KS_THREAD_FLAG_DETATCHED)) { //if (!(thread->flags & KS_THREAD_FLAG_DETATCHED)) {
CloseHandle(thread->handle); CloseHandle(thread->handle);
} //}
#endif #endif
break; break;
} }
...@@ -170,7 +170,7 @@ KS_DECLARE(int) ks_thread_set_priority(int nice_val) ...@@ -170,7 +170,7 @@ KS_DECLARE(int) ks_thread_set_priority(int nice_val)
KS_DECLARE(uint8_t) ks_thread_priority(ks_thread_t *thread) { KS_DECLARE(uint8_t) ks_thread_priority(ks_thread_t *thread) {
uint8_t priority = 0; uint8_t priority = 0;
#ifdef WIN32 #ifdef WIN32
DWORD pri = GetThreadPriority(thread->handle); int pri = GetThreadPriority(thread->handle);
if (pri >= THREAD_PRIORITY_TIME_CRITICAL) { if (pri >= THREAD_PRIORITY_TIME_CRITICAL) {
priority = 99; priority = 99;
...@@ -241,7 +241,7 @@ KS_DECLARE(ks_status_t) ks_thread_create_ex(ks_thread_t **rthread, ks_thread_fun ...@@ -241,7 +241,7 @@ KS_DECLARE(ks_status_t) ks_thread_create_ex(ks_thread_t **rthread, ks_thread_fun
} }
if (flags & KS_THREAD_FLAG_DETATCHED) { if (flags & KS_THREAD_FLAG_DETATCHED) {
CloseHandle(thread->handle); //CloseHandle(thread->handle);
} }
status = KS_STATUS_SUCCESS; status = KS_STATUS_SUCCESS;
......
...@@ -321,12 +321,14 @@ static void test_non_recursive_mutex(void) ...@@ -321,12 +321,14 @@ static void test_non_recursive_mutex(void)
int main(int argc, char **argv) int main(int argc, char **argv)
{ {
ks_init(); ks_init();
cpu_count = ks_cpu_count() * 4; //cpu_count = ks_cpu_count() * 4;
//cpu_count = ks_cpu_count();
cpu_count = 1;
plan(21 + cpu_count * 6); plan(21 + cpu_count * 6);
diag("Starting testing for %d tests\n", 44); diag("Starting testing for %d tests\n", 21 + cpu_count * 6);
create_pool(); create_pool();
create_mutex(); create_mutex();
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论