Make all access to memory tracking counters in stream engine lock protected.

remotes/origin/master-1.0.x
Victor Julien 15 years ago
parent 4d2f602207
commit 3e9e81a1ef

@ -223,9 +223,11 @@ int StreamTcpReassembleInit(char quiet)
StreamMsgQueuesInit();
/* init the memcap and it's lock */
SCSpinInit(&stream_reassembly_memuse_spinlock, PTHREAD_PROCESS_PRIVATE);
SCSpinLock(&stream_reassembly_memuse_spinlock);
stream_reassembly_memuse = 0;
stream_reassembly_memuse_max = 0;
SCSpinInit(&stream_reassembly_memuse_spinlock, PTHREAD_PROCESS_PRIVATE);
SCSpinUnlock(&stream_reassembly_memuse_spinlock);
#ifdef DEBUG
SCMutexInit(&segment_pool_memuse_mutex, NULL);
@ -283,9 +285,11 @@ void StreamTcpReassembleFree(char quiet)
StreamMsgQueuesDeinit(quiet);
if (!quiet) {
SCSpinLock(&stream_reassembly_memuse_spinlock);
SCLogInfo("Max memuse of the stream reassembly engine %"PRIu32" (in use"
" %"PRIu32")", stream_reassembly_memuse_max,
stream_reassembly_memuse);
SCSpinUnlock(&stream_reassembly_memuse_spinlock);
}
SCSpinDestroy(&stream_reassembly_memuse_spinlock);

@ -437,9 +437,11 @@ void StreamTcpInitConfig(char quiet)
}
/* init the memcap and it's lock */
SCSpinInit(&stream_memuse_spinlock, PTHREAD_PROCESS_PRIVATE);
SCSpinLock(&stream_memuse_spinlock);
stream_memuse = 0;
stream_memuse_max = 0;
SCSpinInit(&stream_memuse_spinlock, PTHREAD_PROCESS_PRIVATE);
SCSpinUnlock(&stream_memuse_spinlock);
ssn_pool = PoolInit(stream_config.max_sessions,
stream_config.prealloc_sessions,
@ -480,8 +482,10 @@ void StreamTcpFreeConfig(char quiet)
SCLogDebug("ssn_pool_cnt %"PRIu64"", ssn_pool_cnt);
if (!quiet) {
SCSpinLock(&stream_memuse_spinlock);
SCLogInfo("Max memuse of stream engine %"PRIu32" (in use %"PRIu32")",
stream_memuse_max, stream_memuse);
SCSpinUnlock(&stream_memuse_spinlock);
}
SCMutexDestroy(&ssn_pool_mutex);

Loading…
Cancel
Save