kbd-audio icon indicating copy to clipboard operation
kbd-audio copied to clipboard

system_error: thread constructor failed

Open Dari0GR opened this issue 2 years ago • 2 comments

good day friend

When I want to use ./record output.kbd it shows me the following:

❯ ./record output.kbd Usage: ./record output.kbd [-cN] -cN - select capture device N -CN - number N of capture channels N

Recording 11 frames per key press Found 1 capture devices: - Capture device #0: 'Built-in Microphone' Attempt to open capture device 0 : 'Built-in Microphone' ... Opened capture device succesfully! DeviceId: 2 Frequency: 16000 Format: 33056 (4 bytes) Channels: 2 Samples: 512 Audio Filter: 1 Cutoff frequency: 100 Hz Capturing audio .. libc++abi: terminating with uncaught exception of type std::__1::system_error: thread constructor failed [1] 2348 abort ./record output.kbd

Dari0GR avatar May 11 '22 16:05 Dari0GR

What operating system and compiler are you using? It appears your environment does not allow thread creation.

What happens if you try to build and run the following test.cpp program:

#include <thread>
#include <cstdio>

int main() {
    std::thread test([](){});
    test.join();
    printf("OK\n");
    return 0;
}
g++ test.cpp -lpthread
./a.out

ggerganov avatar May 11 '22 16:05 ggerganov

MacOS Monterrey 12.3.1 Núcleo I7

Todo este fue el proceso que hice de principio a fin:

❯ git clone https://github.com/ggerganov/kbd-audio Cloning into 'kbd-audio'... remote: Enumerating objects: 992, done. remote: Counting objects: 100% (146/146), done. remote: Compressing objects: 100% (100/100), done. remote: Total 992 (delta 79), reused 88 (delta 44), pack-reused 846 Receiving objects: 100% (992/992), 12.65 MiB | 633.00 KiB/s, done. Resolving deltas: 100% (631/631), done. ❯ cd kbd-audio ❯ git submodule update --init Submodule 'imgui' (https://github.com/ocornut/imgui) registered for path 'imgui' Cloning into '/Users/dariogr/Desktop/kbd-audio/imgui'... Submodule path 'imgui': checked out '3f26a07ee1813cecaa87253436149e28fc11dc4e' ❯ mkdir build ❯ cd build ❯ brew install cmake Running brew update --preinstall... ==> Auto-updated Homebrew! Updated 1 tap (homebrew/core). ==> Updated Formulae Updated 4 formulae.

Warning: Treating cmake as a formula. For the cask, use homebrew/cask/cmake Warning: cmake 3.23.1 is already installed and up-to-date. To reinstall 3.23.1, run: brew reinstall cmake ❯ cmake .. CMake Deprecation Warning at CMakeLists.txt:1 (cmake_minimum_required): Compatibility with CMake < 2.8.12 will be removed from a future version of CMake.

Update the VERSION argument value or use a ... suffix to tell CMake that the project does not need compatibility with older versions.

-- The C compiler identification is AppleClang 13.1.6.13160021 -- The CXX compiler identification is AppleClang 13.1.6.13160021 -- Detecting C compiler ABI info -- Detecting C compiler ABI info - done -- Check for working C compiler: /Library/Developer/CommandLineTools/usr/bin/cc - skipped -- Detecting C compile features -- Detecting C compile features - done -- Detecting CXX compiler ABI info -- Detecting CXX compiler ABI info - done -- Check for working CXX compiler: /Library/Developer/CommandLineTools/usr/bin/c++ - skipped -- Detecting CXX compile features -- Detecting CXX compile features - done -- Found Git: /usr/bin/git (found version "2.32.0 (Apple Git-132)") -- Found OpenGL: /Library/Developer/CommandLineTools/SDKs/MacOSX12.3.sdk/System/Library/Frameworks/OpenGL.framework -- Could NOT find FFTW (missing: FFTW_LIBRARIES FFTW_INCLUDE_DIRS) -- Looking for pthread.h -- Looking for pthread.h - found -- Performing Test CMAKE_HAVE_LIBC_PTHREAD -- Performing Test CMAKE_HAVE_LIBC_PTHREAD - Success -- Found Threads: TRUE CMake Warning at CMakeLists.txt:94 (message): FFTW library not available. Some targets will not be built

-- Configuring done -- Generating done -- Build files have been written to: /Users/dariogr/Desktop/kbd-audio/build ❯ make [ 2%] Building CXX object CMakeFiles/Core.dir/common.cpp.o [ 4%] Building CXX object CMakeFiles/Core.dir/audio-logger.cpp.o [ 6%] Linking CXX static library libCore.a [ 6%] Built target Core [ 8%] Building CXX object CMakeFiles/Gui.dir/common-gui.cpp.o [ 10%] Building CXX object CMakeFiles/Gui.dir/imgui/imgui.cpp.o [ 12%] Building CXX object CMakeFiles/Gui.dir/imgui/imgui_draw.cpp.o [ 14%] Building CXX object CMakeFiles/Gui.dir/imgui/imgui_demo.cpp.o [ 17%] Building CXX object CMakeFiles/Gui.dir/imgui/imgui_widgets.cpp.o [ 19%] Building C object CMakeFiles/Gui.dir/imgui/examples/libs/gl3w/GL/gl3w.c.o [ 21%] Building CXX object CMakeFiles/Gui.dir/imgui/examples/imgui_impl_sdl.cpp.o [ 23%] Building CXX object CMakeFiles/Gui.dir/imgui/examples/imgui_impl_opengl3.cpp.o [ 25%] Linking CXX static library libGui.a [ 25%] Built target Gui [ 27%] Building CXX object CMakeFiles/keytap-gui.dir/keytap-gui.cpp.o /Users/dariogr/Desktop/kbd-audio/keytap-gui.cpp:618:28: warning: variable 'curosum' set but not used [-Wunused-but-set-variable] double curosum = 0.0; ^ 1 warning generated. [ 29%] Linking CXX executable keytap-gui [ 29%] Built target keytap-gui [ 31%] Building CXX object CMakeFiles/keytap2-gui.dir/keytap2-gui.cpp.o [ 34%] Building CXX object CMakeFiles/keytap2-gui.dir/subbreak2.cpp.o [ 36%] Linking CXX executable keytap2-gui [ 36%] Built target keytap2-gui [ 38%] Building CXX object CMakeFiles/keytap3-gui.dir/keytap3-gui.cpp.o /Users/dariogr/Desktop/kbd-audio/keytap3-gui.cpp:365:11: warning: unused variable 'lastKeyPresses' [-Wunused-variable] int & lastKeyPresses = stateUI.lastKeyPresses; ^ 1 warning generated. [ 40%] Building CXX object CMakeFiles/keytap3-gui.dir/subbreak3.cpp.o /Users/dariogr/Desktop/kbd-audio/subbreak3.cpp:1136:20: warning: unused variable 'p0' [-Wunused-variable] const auto p0 = m_curResult.pClusters; ^ 1 warning generated. [ 42%] Linking CXX executable keytap3-gui [ 42%] Built target keytap3-gui [ 44%] Building CXX object CMakeFiles/keytap3-app.dir/keytap3-app.cpp.o [ 46%] Building CXX object CMakeFiles/keytap3-app.dir/subbreak3.cpp.o /Users/dariogr/Desktop/kbd-audio/subbreak3.cpp:1136:20: warning: unused variable 'p0' [-Wunused-variable] const auto p0 = m_curResult.pClusters; ^ 1 warning generated. [ 48%] Linking CXX executable keytap3-app [ 48%] Built target keytap3-app [ 51%] Building CXX object CMakeFiles/view-full-gui.dir/view-full-gui.cpp.o [ 53%] Linking CXX executable view-full-gui [ 53%] Built target view-full-gui [ 55%] Building CXX object CMakeFiles/key-detector.dir/key-detector.cpp.o [ 57%] Linking CXX executable key-detector [ 57%] Built target key-detector [ 59%] Building CXX object CMakeFiles/keytap.dir/keytap.cpp.o /Users/dariogr/Desktop/kbd-audio/keytap.cpp:499:28: warning: variable 'curosum' set but not used [-Wunused-but-set-variable] double curosum = 0.0; ^ /Users/dariogr/Desktop/kbd-audio/keytap.cpp:566:99: warning: format specifies type 'long' but the argument has type 'long long' [-Wformat] printf(" Adding waveform %d - cc = %g, offset = %ld\n", iwaveform, cc, offset); ~~~ ^~~~~~ %lld 2 warnings generated. [ 61%] Linking CXX executable keytap [ 61%] Built target keytap [ 63%] Building CXX object CMakeFiles/keytap2.dir/keytap2.cpp.o [ 65%] Linking CXX executable keytap2 [ 65%] Built target keytap2 [ 68%] Building CXX object CMakeFiles/keytap3.dir/keytap3.cpp.o [ 70%] Building CXX object CMakeFiles/keytap3.dir/subbreak3.cpp.o /Users/dariogr/Desktop/kbd-audio/subbreak3.cpp:1136:20: warning: unused variable 'p0' [-Wunused-variable] const auto p0 = m_curResult.pClusters; ^ 1 warning generated. [ 72%] Linking CXX executable keytap3 [ 72%] Built target keytap3 [ 74%] Building CXX object CMakeFiles/play.dir/play.cpp.o [ 76%] Linking CXX executable play [ 76%] Built target play [ 78%] Building CXX object CMakeFiles/play-full.dir/play-full.cpp.o [ 80%] Linking CXX executable play-full [ 80%] Built target play-full [ 82%] Building CXX object CMakeFiles/record.dir/record.cpp.o [ 85%] Linking CXX executable record [ 85%] Built target record [ 87%] Building CXX object CMakeFiles/record-full.dir/record-full.cpp.o [ 89%] Linking CXX executable record-full [ 89%] Built target record-full [ 91%] Building CXX object CMakeFiles/view-gui.dir/view-gui.cpp.o [ 93%] Linking CXX executable view-gui [ 93%] Built target view-gui [ 95%] Building CXX object CMakeFiles/compress-n-grams.dir/compress-n-grams.cpp.o [ 97%] Building CXX object CMakeFiles/compress-n-grams.dir/subbreak3.cpp.o /Users/dariogr/Desktop/kbd-audio/subbreak3.cpp:1136:20: warning: unused variable 'p0' [-Wunused-variable] const auto p0 = m_curResult.pClusters; ^ 1 warning generated. [100%] Linking CXX executable compress-n-grams [100%] Built target compress-n-grams

Dari0GR avatar May 11 '22 16:05 Dari0GR