Use of rate limiter can cause sbbs exception/crash under very high loads

Apparently we do need to mutex-protect the unordered_map in the rateLimiter class:

NULL pointer deref exception occurred here:

*  	websrvr.dll!std::_Adjust_manually_vector_aligned(void * & _Ptr, unsigned int & _Bytes) Line 205	C++	Symbols loaded.
 	websrvr.dll!std::_Deallocate<8>(void * _Ptr, unsigned int _Bytes) Line 286	C++	Symbols loaded.
 	websrvr.dll!std::allocator<__int64 *>::deallocate(__int64 * * const _Ptr, const unsigned int _Count) Line 985	C++	Symbols loaded.
 	websrvr.dll!std::deque<__int64,std::allocator<__int64>>::_Growmap(unsigned int _Count) Line 1644	C++	Symbols loaded.
 	websrvr.dll!std::deque<__int64,std::allocator<__int64>>::_Emplace_back_internal<__int64 const &>(const __int64 & <_Vals_0>) Line 1145	C++	Symbols loaded.
 	websrvr.dll!std::deque<__int64,std::allocator<__int64>>::push_back(const __int64 & _Val) Line 1249	C++	Symbols loaded.
>	websrvr.dll!rateLimiter::allowRequest(const std::string & clientId) Line 51	C++	Symbols loaded.
 	websrvr.dll!get_req(http_session_t * session, char * request_line) Line 3542	C++	Symbols loaded.
 	websrvr.dll!http_session_thread(void * arg) Line 7072	C++	Symbols loaded.
 	websrvr.dll!thread_start<void (__cdecl*)(void *),0>(void * const parameter) Line 101	C++	Symbols loaded.
 	kernel32.dll!@BaseThreadInitThunk@12()	Unknown	Non-user code. Symbols loaded without source information.
 	ntdll.dll!___RtlUserThreadStart@8()	Unknown	Non-user code. Symbols loaded without source information.
 	ntdll.dll!__RtlUserThreadStart@8()	Unknown	Non-user code. Symbols loaded without source information.
Assignee Loading
Time tracking Loading