Hi, most of the mcfgthread code is LGPL licenced (MCFLicense.txt <https://github.com/lhmouse/mcfgthread/blob/master/MCFLicense.txt>). Is this set in stone, or is it foreseen to change it to a more liberal licence?
Another question is: is it still possible to use pthreads (via winpthreads) if gcc is configured with --enable-threads=mcf? and finally: is it really necessary to rely on "undocumented NT system calls for efficiency reasons"? Just a few points that come into my mind after a quick scan of your repository. The idea to overcome the schism of mingw-w64 thread configurations is really great. Regards Carl 2016-06-18 21:10 GMT+02:00 lh mouse <[email protected]>: > Hello everyone, > > It is with great honor that I bring you the C11-conforming header for > thread support of mcfgthread, c11thread.h: > https://github.com/lhmouse/mcfgthread/blob/master/src/env/c11thread.h > All headers in the mcfgthread project have been put into the public domain. > > As JonY suggested a few days ago, it would be nice for mingw-w64 to have > C11 thread support. > This announcement is not only a call for testers, but also a proposal for > a C11 header for mingw-w64. We can have both C11 and C++11 threads from > today. > > The following code illustrates how to use C11 threads: > ``` > E:\Desktop>expand -t4 test.c > #include <mcfgthread/c11thread.h> > #include <stdio.h> > #include <stdlib.h> > > int thread_proc(void *param){ > printf("thread running: tid = %u, param = %p\n", > (unsigned)thrd_current(), param); > for(int i = 0; i < 5; ++i){ > printf("thread going to sleep for one second...\n"); > struct timespec ts; > ts.tv_sec = 1; > ts.tv_nsec = 0; > thrd_sleep(&ts, 0); > } > int exit_code = 67890; > printf("thread exiting: exit_code = %d\n", exit_code); > return exit_code; > } > > int main(){ > thrd_t tid; > int err; > if((err = thrd_create(&tid, &thread_proc, (void *)0x12345)) != > thrd_success){ > printf("thrd_create() returned %d\n", err); > abort(); > } > printf("created thread: tid = %u\n", (unsigned)tid); > int exit_code; > if((err = thrd_join(tid, &exit_code)) != thrd_success){ > printf("thrd_join() returned %d\n", err); > abort(); > } > printf("joined thread: exit_code = %d\n", exit_code); > } > > E:\Desktop>gcc test.c -std=c11 -Wall -Wextra -pedantic -lmcfgthread > > E:\Desktop>a.exe > created thread: tid = 9876 > thread running: tid = 9876, param = 00012345 > thread going to sleep for one second... > thread going to sleep for one second... > thread going to sleep for one second... > thread going to sleep for one second... > thread going to sleep for one second... > thread exiting: exit_code = 67890 > joined thread: exit_code = 67890 > > E:\Desktop> > ``` > > In order to use C++11 std::thread (as well as std::mutex, > std::condition_variable, etc) you must rebuild GCC and its libraries. > A few instructions can be found here: > https://github.com/lhmouse/mcfgthread/wiki > > > -------------- > Best regards, > lh_mouse > 2016-06-19 > > > > ------------------------------------------------------------------------------ > What NetFlow Analyzer can do for you? Monitors network bandwidth and > traffic > patterns at an interface-level. Reveals which users, apps, and protocols > are > consuming the most bandwidth. Provides multi-vendor support for NetFlow, > J-Flow, sFlow and other flows. Make informed decisions using capacity > planning > reports. http://sdm.link/zohomanageengine > _______________________________________________ > Mingw-w64-public mailing list > [email protected] > https://lists.sourceforge.net/lists/listinfo/mingw-w64-public > ------------------------------------------------------------------------------ What NetFlow Analyzer can do for you? Monitors network bandwidth and traffic patterns at an interface-level. Reveals which users, apps, and protocols are consuming the most bandwidth. Provides multi-vendor support for NetFlow, J-Flow, sFlow and other flows. Make informed decisions using capacity planning reports. http://sdm.link/zohomanageengine _______________________________________________ Mingw-w64-public mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/mingw-w64-public
