Closed mymedia2 closed 7 years ago
Joining threads is needed to make sure the thread stops running before any resources it might use are deallocated thus eliminating weird crashes. You can't just remove these calls and expect that everything would work. It might work in some cases, but as it always is with multi-threaded code, any kind of race condition isn't 100% reproducible.
Okey, got it.
Now calls complete without freezing, thank you very much! But... it seems you forgot to include logging.h header for LOGW macro in audio/AudioInput.cpp and audio/AudioOutput.cpp files. This causes build errors.
[ 64%] Building CXX object CMakeFiles/libtgvoip.dir/build/libtgvoip-0.4.1~git20170517.937a857/audio/AudioInput.o
/usr/bin/c++ -DTGVOIP_USE_DESKTOP_DSP -DWEBRTC_APM_DEBUG_DUMP=0 -DWEBRTC_POSIX -Dlibtgvoip_EXPORTS -I"/build/libtgvoip-0.4.1~git20170517.937a857/obj-i686-linux-gnu/Release/../../webrtc_dsp" -I/usr/include/opus -g -O2 -fdebug-prefix-map=/build/libtgvoip-0.4.1~git20170517.937a857=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -msse2 -o "CMakeFiles/libtgvoip.dir/build/libtgvoip-0.4.1~git20170517.937a857/audio/AudioInput.o" -c "/build/libtgvoip-0.4.1~git20170517.937a857/audio/AudioInput.cpp"
/build/libtgvoip-0.4.1~git20170517.937a857/audio/AudioInput.cpp: In static member function 'static tgvoip::audio::AudioInput* tgvoip::audio::AudioInput::Create(std::__cxx11::string)':
/build/libtgvoip-0.4.1~git20170517.937a857/audio/AudioInput.cpp:64:63: error: 'LOGW' was not declared in this scope
LOGW("in: PulseAudio available but not working; trying ALSA");
^
CMakeFiles/libtgvoip.dir/build.make:1409: recipe for target 'CMakeFiles/libtgvoip.dir/build/libtgvoip-0.4.1~git20170517.937a857/audio/AudioInput.o' failed
make[3]: *** [CMakeFiles/libtgvoip.dir/build/libtgvoip-0.4.1~git20170517.937a857/audio/AudioInput.o] Error 1
make[3]: *** Waiting for unfinished jobs....
make[3]: Leaving directory '/build/libtgvoip-0.4.1~git20170517.937a857/obj-i686-linux-gnu'
CMakeFiles/Makefile2:70: recipe for target 'CMakeFiles/libtgvoip.dir/all' failed
make[2]: *** [CMakeFiles/libtgvoip.dir/all] Error 2
make[2]: Leaving directory '/build/libtgvoip-0.4.1~git20170517.937a857/obj-i686-linux-gnu'
Makefile:86: recipe for target 'all' failed
make[1]: *** [all] Error 2
make[1]: Leaving directory '/build/libtgvoip-0.4.1~git20170517.937a857/obj-i686-linux-gnu'
Fixed
Fix for telegramdesktop/tdesktop#3408. I didn't test it properly for the presence of any leaks, but I hope nothing is broken.