> Hi,
> I tried the latest 1.4 branch on Linux and ended up recursing forever
> in:
> #14568 0x000000000043d18a in CArchNetworkBSD::CArchNetworkBSD() ()
> #14569 0x000000000043a942 in CArch::CArch() ()
> #14570 0x000000000043ab77 in CArch::getInstance() ()
> #14571 0x000000000043d18a in CArchNetworkBSD::CArchNetworkBSD() ()
> #14572 0x000000000043a942 in CArch::CArch() ()
> #14573 0x000000000043ab77 in CArch::getInstance() ()
> #14574 0x000000000043d18a in CArchNetworkBSD::CArchNetworkBSD() ()
> #14575 0x000000000043a942 in CArch::CArch() ()
> #14576 0x000000000043ab77 in CArch::getInstance() ()
> #14577 0x000000000043d18a in CArchNetworkBSD::CArchNetworkBSD() ()
> #14578 0x000000000043a942 in CArch::CArch() ()
> #14579 0x000000000043ab77 in CArch::getInstance() ()
> #14580 0x0000000000443601 in CApp::run(int, char**) ()
> #14581 0x0000000000438e25 in main ()
> The following patch fixes it for me, it calls ARCH_NETWORK::init()
> to setup the mutex for BSD sockets in the same way it does for winsock
> sockets.
> Anton
> --
> diff --git a/src/lib/arch/CArch.cpp b/src/lib/arch/CArch.cpp
> index f397ad8..55841e5 100644
> --- a/src/lib/arch/CArch.cpp
> +++ b/src/lib/arch/CArch.cpp
> @@ -36,10 +36,10 @@ CArch::~CArch()
> void
> CArch::init()
> {
> -#if SYSAPI_WIN32
> // initialization that requires ARCH is done here.
> - ARCH_TASKBAR::init();
> ARCH_NETWORK::init();
> +#if SYSAPI_WIN32
> + ARCH_TASKBAR::init();
> CArchMiscWindows::init();
> #endif
> }
> diff --git a/src/lib/arch/CArchNetworkBSD.cpp b/src/lib/arch/CArchNetworkBSD.cpp
> index cc92604..ac799d9 100644
> --- a/src/lib/arch/CArchNetworkBSD.cpp
> +++ b/src/lib/arch/CArchNetworkBSD.cpp
> @@ -85,8 +85,6 @@ inet_aton(const char* cp, struct in_addr* inp)
> CArchNetworkBSD::CArchNetworkBSD()
> {
> - // create mutex to make some calls thread safe
> - m_mutex = ARCH->newMutex();
> }
> CArchNetworkBSD::~CArchNetworkBSD()
> @@ -94,6 +92,13 @@ CArchNetworkBSD::~CArchNetworkBSD()
> ARCH->closeMutex(m_mutex);
> }
> +void
> +CArchNetworkBSD::init()
> +{
> + // create mutex to make some calls thread safe
> + m_mutex = ARCH->newMutex();
> +}
> +
> CArchSocket
> CArchNetworkBSD::newSocket(EAddressFamily family, ESocketType type)
> {
> diff --git a/src/lib/arch/CArchNetworkBSD.h b/src/lib/arch/CArchNetworkBSD.h
> index 1380dad..f2e4ea6 100644
> --- a/src/lib/arch/CArchNetworkBSD.h
> +++ b/src/lib/arch/CArchNetworkBSD.h
> @@ -59,6 +59,8 @@ public:
> CArchNetworkBSD();
> virtual ~CArchNetworkBSD();
> + virtual void init();
> +
> // IArchNetwork overrides
> virtual CArchSocket newSocket(EAddressFamily, ESocketType);
> virtual CArchSocket copySocket(CArchSocket s);
> --
> You received this message because you are subscribed to the Google Groups "Synergy mailing list" group.
> To post to this group, send email to synergy-plus@googlegroups.com.
> To unsubscribe from this group, send email to synergy-plus+unsubscribe@googlegroups.com.
> For more options, visit this group at http://groups.google.com/group/synergy-plus?hl=en.