| 100 | } |
| 101 | |
| 102 | void KeyCache::StopClearThread() |
| 103 | { |
| 104 | if (!m_clearThread) |
| 105 | return; |
| 106 | |
| 107 | assert(m_clearEvent); |
| 108 | |
| 109 | SetEvent(m_clearEvent); |
| 110 | |
| 111 | auto wait_result = WaitForSingleObject(m_clearThread, INFINITE); |
| 112 | |
| 113 | assert(wait_result == WAIT_OBJECT_0); |
| 114 | |
| 115 | CloseHandle(m_clearThread); |
| 116 | CloseHandle(m_clearEvent); |
| 117 | |
| 118 | m_clearEvent = NULL; |
| 119 | m_clearThread = NULL; |
| 120 | } |
| 121 | |
| 122 | KeyCache::id_t KeyCache::Register(DWORD buf_size) |
| 123 | { |