fix race condition caused by sharing udp socket and opening it in the session thread. Moved initialization to session constructor
This commit is contained in:
parent
d1a7e0a581
commit
126778d403
|
@ -526,6 +526,13 @@ namespace aux {
|
||||||
, m_total_failed_bytes(0)
|
, m_total_failed_bytes(0)
|
||||||
, m_total_redundant_bytes(0)
|
, m_total_redundant_bytes(0)
|
||||||
{
|
{
|
||||||
|
#if defined TORRENT_VERBOSE_LOGGING || defined TORRENT_LOGGING || defined TORRENT_ERROR_LOGGING
|
||||||
|
m_logger = create_log("main_session", listen_port(), false);
|
||||||
|
(*m_logger) << time_now_string() << "\n";
|
||||||
|
#endif
|
||||||
|
|
||||||
|
open_listen_port();
|
||||||
|
|
||||||
#ifndef TORRENT_DISABLE_DHT
|
#ifndef TORRENT_DISABLE_DHT
|
||||||
m_next_dht_torrent = m_torrents.begin();
|
m_next_dht_torrent = m_torrents.begin();
|
||||||
#endif
|
#endif
|
||||||
|
@ -620,10 +627,8 @@ namespace aux {
|
||||||
#ifdef TORRENT_UPNP_LOGGING
|
#ifdef TORRENT_UPNP_LOGGING
|
||||||
m_upnp_log.open("upnp.log", std::ios::in | std::ios::out | std::ios::trunc);
|
m_upnp_log.open("upnp.log", std::ios::in | std::ios::out | std::ios::trunc);
|
||||||
#endif
|
#endif
|
||||||
#if defined TORRENT_VERBOSE_LOGGING || defined TORRENT_LOGGING || defined TORRENT_ERROR_LOGGING
|
|
||||||
m_logger = create_log("main_session", listen_port(), false);
|
|
||||||
(*m_logger) << time_now_string() << "\n";
|
|
||||||
|
|
||||||
|
#if defined TORRENT_VERBOSE_LOGGING || defined TORRENT_LOGGING || defined TORRENT_ERROR_LOGGING
|
||||||
#define PRINT_SIZEOF(x) (*m_logger) << "sizeof(" #x "): " << sizeof(x) << "\n";
|
#define PRINT_SIZEOF(x) (*m_logger) << "sizeof(" #x "): " << sizeof(x) << "\n";
|
||||||
#define PRINT_OFFSETOF(x, y) (*m_logger) << " offsetof(" #x "," #y "): " << offsetof(x, y) << "\n";
|
#define PRINT_OFFSETOF(x, y) (*m_logger) << " offsetof(" #x "," #y "): " << offsetof(x, y) << "\n";
|
||||||
|
|
||||||
|
@ -2877,12 +2882,6 @@ namespace aux {
|
||||||
{
|
{
|
||||||
eh_initializer();
|
eh_initializer();
|
||||||
|
|
||||||
if (m_listen_interface.port() != 0)
|
|
||||||
{
|
|
||||||
mutex::scoped_lock l(m_mutex);
|
|
||||||
open_listen_port();
|
|
||||||
}
|
|
||||||
|
|
||||||
do
|
do
|
||||||
{
|
{
|
||||||
error_code ec;
|
error_code ec;
|
||||||
|
@ -3398,6 +3397,9 @@ namespace aux {
|
||||||
{
|
{
|
||||||
INVARIANT_CHECK;
|
INVARIANT_CHECK;
|
||||||
|
|
||||||
|
if (m_listen_interface.port() != 0)
|
||||||
|
open_listen_port();
|
||||||
|
|
||||||
if (m_dht)
|
if (m_dht)
|
||||||
{
|
{
|
||||||
m_dht->stop();
|
m_dht->stop();
|
||||||
|
|
Loading…
Reference in New Issue