efl/src/lib/eina
Wander Lairson Costa 65d528a379 Implement eina_thread for native windows
Summary:
eina: Implement Eina_Thread for native windows

The implementation design respects the fact that Eina_Thread is an
uintptr_t. Thus we allocate the thread struct in the heap and return a
pointer to it.

As such, we store the created thread structure in the target thread
TLS slot. For threads that were not created through eina API, in
eina_thread_self we allocate a new structure, push it to the TLS slot
and mark it to be freed on thread exit.

Reviewers: jptiz, vtorri, cedric, walac

Reviewed By: jptiz, cedric

Subscribers: raster, cedric, #reviewers, #committers, lucas

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D12037
2021-04-17 16:00:32 -03:00
..
Eina.h Implement eina_thread for native windows 2021-04-17 16:00:32 -03:00
eina_abi.c eina: Rename EAPI macro to EINA_API in Eina library 2020-11-25 09:42:47 -03:00
eina_abstract_content.c eina: Rename EAPI macro to EINA_API in Eina library 2020-11-25 09:42:47 -03:00
eina_abstract_content.h eina: Rename EAPI macro to EINA_API in Eina library 2020-11-25 09:42:47 -03:00
eina_accessor.c eina: Rename EAPI macro to EINA_API in Eina library 2020-11-25 09:42:47 -03:00
eina_accessor.h eina: Rename EAPI macro to EINA_API in Eina library 2020-11-25 09:42:47 -03:00
eina_alloca.h
eina_array.c eina: Rename EAPI macro to EINA_API in Eina library 2020-11-25 09:42:47 -03:00
eina_array.h eina: Rename EAPI macro to EINA_API in Eina library 2020-11-25 09:42:47 -03:00
eina_benchmark.c eina: Rename EAPI macro to EINA_API in Eina library 2020-11-25 09:42:47 -03:00
eina_benchmark.h eina: Rename EAPI macro to EINA_API in Eina library 2020-11-25 09:42:47 -03:00
eina_bezier.c eina: Rename EAPI macro to EINA_API in Eina library 2020-11-25 09:42:47 -03:00
eina_bezier.h eina: Rename EAPI macro to EINA_API in Eina library 2020-11-25 09:42:47 -03:00
eina_binbuf.c eina: Rename EAPI macro to EINA_API in Eina library 2020-11-25 09:42:47 -03:00
eina_binbuf.h eina: Rename EAPI macro to EINA_API in Eina library 2020-11-25 09:42:47 -03:00
eina_binbuf_template_c.x eina: Rename EAPI macro to EINA_API in Eina library 2020-11-25 09:42:47 -03:00
eina_binshare.c eina: Rename EAPI macro to EINA_API in Eina library 2020-11-25 09:42:47 -03:00
eina_binshare.h eina: Rename EAPI macro to EINA_API in Eina library 2020-11-25 09:42:47 -03:00
eina_clist.h
eina_convert.c eina: Rename EAPI macro to EINA_API in Eina library 2020-11-25 09:42:47 -03:00
eina_convert.h eina: Rename EAPI macro to EINA_API in Eina library 2020-11-25 09:42:47 -03:00
eina_counter.c eina: Rename EAPI macro to EINA_API in Eina library 2020-11-25 09:42:47 -03:00
eina_counter.h eina: Rename EAPI macro to EINA_API in Eina library 2020-11-25 09:42:47 -03:00
eina_cow.c eina: Rename EAPI macro to EINA_API in Eina library 2020-11-25 09:42:47 -03:00
eina_cow.h eina: Rename EAPI macro to EINA_API in Eina library 2020-11-25 09:42:47 -03:00
eina_cpu.c eina: Rename EAPI macro to EINA_API in Eina library 2020-11-25 09:42:47 -03:00
eina_cpu.h eina: Rename EAPI macro to EINA_API in Eina library 2020-11-25 09:42:47 -03:00
eina_crc.c eina: Rename EAPI macro to EINA_API in Eina library 2020-11-25 09:42:47 -03:00
eina_crc.h
eina_debug.c eina: Rename EAPI macro to EINA_API in Eina library 2020-11-25 09:42:47 -03:00
eina_debug.h eina: Rename EAPI macro to EINA_API in Eina library 2020-11-25 09:42:47 -03:00
eina_debug_bt.c Get rid of trailing whitespaces (8 / 14) 2020-06-23 10:30:16 +02:00
eina_debug_bt_file.c Eina: replace Evil.h with evil_private.h and remove Evil.h when not necessary 2019-05-16 13:48:59 -04:00
eina_debug_chunk.c make mman.h private 2019-08-19 09:55:13 -04:00
eina_debug_cpu.c
eina_debug_private.h Use __func__ C99 identifier instead of __FUNCTION__ compiler extension 2020-05-07 09:27:07 -04:00
eina_debug_thread.c
eina_debug_timer.c eina: Rename EAPI macro to EINA_API in Eina library 2020-11-25 09:42:47 -03:00
eina_error.c eina: Rename EAPI macro to EINA_API in Eina library 2020-11-25 09:42:47 -03:00
eina_error.h eina: Rename EAPI macro to EINA_API in Eina library 2020-11-25 09:42:47 -03:00
eina_evlog.c eina: Rename EAPI macro to EINA_API in Eina library 2020-11-25 09:42:47 -03:00
eina_evlog.h eina: Rename EAPI macro to EINA_API in Eina library 2020-11-25 09:42:47 -03:00
eina_file.h eina: Rename EAPI macro to EINA_API in Eina library 2020-11-25 09:42:47 -03:00
eina_file_common.c eina: Rename EAPI macro to EINA_API in Eina library 2020-11-25 09:42:47 -03:00
eina_file_common.h Windows: fix eina_file_map_new() 2020-06-26 15:40:57 +02:00
eina_file_posix.c eina: Rename EAPI macro to EINA_API in Eina library 2020-11-25 09:42:47 -03:00
eina_file_win32.c eina: Rename EAPI macro to EINA_API in Eina library 2020-11-25 09:42:47 -03:00
eina_fp.c eina: Rename EAPI macro to EINA_API in Eina library 2020-11-25 09:42:47 -03:00
eina_fp.h eina: Rename EAPI macro to EINA_API in Eina library 2020-11-25 09:42:47 -03:00
eina_freeq.c eina: Rename EAPI macro to EINA_API in Eina library 2020-11-25 09:42:47 -03:00
eina_freeq.h eina: Rename EAPI macro to EINA_API in Eina library 2020-11-25 09:42:47 -03:00
eina_hamster.c eina: Rename EAPI macro to EINA_API in Eina library 2020-11-25 09:42:47 -03:00
eina_hamster.h eina: Rename EAPI macro to EINA_API in Eina library 2020-11-25 09:42:47 -03:00
eina_hash.c eina: Rename EAPI macro to EINA_API in Eina library 2020-11-25 09:42:47 -03:00
eina_hash.h eina: Rename EAPI macro to EINA_API in Eina library 2020-11-25 09:42:47 -03:00
eina_inarray.c eina: Rename EAPI macro to EINA_API in Eina library 2020-11-25 09:42:47 -03:00
eina_inarray.h eina: Rename EAPI macro to EINA_API in Eina library 2020-11-25 09:42:47 -03:00
eina_inline_array.x eina: Rename EAPI macro to EINA_API in Eina library 2020-11-25 09:42:47 -03:00
eina_inline_clist.x
eina_inline_cpu.x eina: unbreak byteswap checks 2019-10-23 15:51:08 +02:00
eina_inline_crc.x eina: Rename EAPI macro to EINA_API in Eina library 2020-11-25 09:42:47 -03:00
eina_inline_f8p24.x
eina_inline_f16p16.x
eina_inline_f32p32.x
eina_inline_file.x
eina_inline_fp.x
eina_inline_hash.x eina: Rename EAPI macro to EINA_API in Eina library 2020-11-25 09:42:47 -03:00
eina_inline_inlist.x
eina_inline_list.x
eina_inline_lock_barrier.x
eina_inline_lock_posix.x eina: Rename EAPI macro to EINA_API in Eina library 2020-11-25 09:42:47 -03:00
eina_inline_log.x
eina_inline_mempool.x doxygen docs: Fix tons of invalid Doxygen commands 2020-03-10 21:36:34 +01:00
eina_inline_modinfo.x doxygen docs: Complete docs for Eina Module 2020-05-08 12:32:09 +02:00
eina_inline_private.h
eina_inline_range.x eina: add new range Data type 2020-01-23 06:54:44 +09:00
eina_inline_rbtree.x
eina_inline_rectangle.x
eina_inline_safepointer.x eina: Rename EAPI macro to EINA_API in Eina library 2020-11-25 09:42:47 -03:00
eina_inline_slice.x Eina: replace Evil.h with evil_private.h and remove Evil.h when not necessary 2019-05-16 13:48:59 -04:00
eina_inline_str.x eina - fix eina_strndup test passing 2020-01-15 19:23:44 +00:00
eina_inline_stringshare.x
eina_inline_tiler.x
eina_inline_trash.x
eina_inline_unicode.x eina: Rename EAPI macro to EINA_API in Eina library 2020-11-25 09:42:47 -03:00
eina_inline_ustringshare.x
eina_inline_util.x
eina_inline_value.x eina: Rename EAPI macro to EINA_API in Eina library 2020-11-25 09:42:47 -03:00
eina_inline_value_util.x eina: prevent leak of Eina_Value internal allocation. 2019-09-17 10:24:08 -07:00
eina_inline_vector.x
eina_inlist.c eina: Rename EAPI macro to EINA_API in Eina library 2020-11-25 09:42:47 -03:00
eina_inlist.h eina: Rename EAPI macro to EINA_API in Eina library 2020-11-25 09:42:47 -03:00
eina_internal.h eina: Rename EAPI macro to EINA_API in Eina library 2020-11-25 09:42:47 -03:00
eina_iterator.c eina: Rename EAPI macro to EINA_API in Eina library 2020-11-25 09:42:47 -03:00
eina_iterator.h eina: Rename EAPI macro to EINA_API in Eina library 2020-11-25 09:42:47 -03:00
eina_lalloc.c eina: Rename EAPI macro to EINA_API in Eina library 2020-11-25 09:42:47 -03:00
eina_lalloc.h eina: Rename EAPI macro to EINA_API in Eina library 2020-11-25 09:42:47 -03:00
eina_list.c eina: Rename EAPI macro to EINA_API in Eina library 2020-11-25 09:42:47 -03:00
eina_list.h eina: Rename EAPI macro to EINA_API in Eina library 2020-11-25 09:42:47 -03:00
eina_lock.c eina: Rename EAPI macro to EINA_API in Eina library 2020-11-25 09:42:47 -03:00
eina_lock.h eina: Rename EAPI macro to EINA_API in Eina library 2020-11-25 09:42:47 -03:00
eina_log.c eina: Rename EAPI macro to EINA_API in Eina library 2020-11-25 09:42:47 -03:00
eina_log.h eina: Rename EAPI macro to EINA_API in Eina library 2020-11-25 09:42:47 -03:00
eina_magic.c eina: Rename EAPI macro to EINA_API in Eina library 2020-11-25 09:42:47 -03:00
eina_magic.h eina: Rename EAPI macro to EINA_API in Eina library 2020-11-25 09:42:47 -03:00
eina_main.c eina: Rename EAPI macro to EINA_API in Eina library 2020-11-25 09:42:47 -03:00
eina_main.h eina: Rename EAPI macro to EINA_API in Eina library 2020-11-25 09:42:47 -03:00
eina_matrix.c eina: Rename EAPI macro to EINA_API in Eina library 2020-11-25 09:42:47 -03:00
eina_matrix.h eina: Rename EAPI macro to EINA_API in Eina library 2020-11-25 09:42:47 -03:00
eina_matrixsparse.c eina: Rename EAPI macro to EINA_API in Eina library 2020-11-25 09:42:47 -03:00
eina_matrixsparse.h eina: Rename EAPI macro to EINA_API in Eina library 2020-11-25 09:42:47 -03:00
eina_mempool.c eina: Rename EAPI macro to EINA_API in Eina library 2020-11-25 09:42:47 -03:00
eina_mempool.h eina: Rename EAPI macro to EINA_API in Eina library 2020-11-25 09:42:47 -03:00
eina_mmap.c eina: Rename EAPI macro to EINA_API in Eina library 2020-11-25 09:42:47 -03:00
eina_mmap.h eina: Rename EAPI macro to EINA_API in Eina library 2020-11-25 09:42:47 -03:00
eina_module.c eina: Rename EAPI macro to EINA_API in Eina library 2020-11-25 09:42:47 -03:00
eina_module.h eina: Rename EAPI macro to EINA_API in Eina library 2020-11-25 09:42:47 -03:00
eina_prefix.c eina: Rename EAPI macro to EINA_API in Eina library 2020-11-25 09:42:47 -03:00
eina_prefix.h eina: Rename EAPI macro to EINA_API in Eina library 2020-11-25 09:42:47 -03:00
eina_private.h Evil : move mkstemp(s) and mkdtemp in eina_file directly 2020-10-08 11:58:11 +01:00
eina_promise.c eina_promise: do not self feedback when canceling 2021-04-10 13:11:07 +02:00
eina_promise.h eina: Rename EAPI macro to EINA_API in Eina library 2020-11-25 09:42:47 -03:00
eina_promise_private.h eo: make efl_future_then have a data pointer in addition of the object pointer. 2018-12-07 12:23:11 +01:00
eina_quad.c eina: Rename EAPI macro to EINA_API in Eina library 2020-11-25 09:42:47 -03:00
eina_quad.h eina: Rename EAPI macro to EINA_API in Eina library 2020-11-25 09:42:47 -03:00
eina_quadtree.c eina: Rename EAPI macro to EINA_API in Eina library 2020-11-25 09:42:47 -03:00
eina_quadtree.h eina: Rename EAPI macro to EINA_API in Eina library 2020-11-25 09:42:47 -03:00
eina_quaternion.c eina: Rename EAPI macro to EINA_API in Eina library 2020-11-25 09:42:47 -03:00
eina_quaternion.h eina: Rename EAPI macro to EINA_API in Eina library 2020-11-25 09:42:47 -03:00
eina_range.h eina: add new range Data type 2020-01-23 06:54:44 +09:00
eina_rbtree.c eina: Rename EAPI macro to EINA_API in Eina library 2020-11-25 09:42:47 -03:00
eina_rbtree.h eina: Rename EAPI macro to EINA_API in Eina library 2020-11-25 09:42:47 -03:00
eina_rectangle.c eina: Rename EAPI macro to EINA_API in Eina library 2020-11-25 09:42:47 -03:00
eina_rectangle.h eina: Rename EAPI macro to EINA_API in Eina library 2020-11-25 09:42:47 -03:00
eina_refcount.h
eina_safepointer.c eina: Rename EAPI macro to EINA_API in Eina library 2020-11-25 09:42:47 -03:00
eina_safepointer.h eina: Rename EAPI macro to EINA_API in Eina library 2020-11-25 09:42:47 -03:00
eina_safety_checks.c eina: Rename EAPI macro to EINA_API in Eina library 2020-11-25 09:42:47 -03:00
eina_safety_checks.h eina: Rename EAPI macro to EINA_API in Eina library 2020-11-25 09:42:47 -03:00
eina_share_common.c Eina: replace Evil.h with evil_private.h and remove Evil.h when not necessary 2019-05-16 13:48:59 -04:00
eina_share_common.h
eina_simple_xml_parser.c eina: Rename EAPI macro to EINA_API in Eina library 2020-11-25 09:42:47 -03:00
eina_simple_xml_parser.h eina: Rename EAPI macro to EINA_API in Eina library 2020-11-25 09:42:47 -03:00
eina_slice.h doxygen docs: Fix several warnings in Eina files 2020-03-26 14:27:51 +01:00
eina_slstr.c eina: Rename EAPI macro to EINA_API in Eina library 2020-11-25 09:42:47 -03:00
eina_slstr.h eina: Rename EAPI macro to EINA_API in Eina library 2020-11-25 09:42:47 -03:00
eina_str.c eina: Rename EAPI macro to EINA_API in Eina library 2020-11-25 09:42:47 -03:00
eina_str.h eina: Rename EAPI macro to EINA_API in Eina library 2020-11-25 09:42:47 -03:00
eina_strbuf.c eina: Rename EAPI macro to EINA_API in Eina library 2020-11-25 09:42:47 -03:00
eina_strbuf.h eina: Rename EAPI macro to EINA_API in Eina library 2020-11-25 09:42:47 -03:00
eina_strbuf_common.c eina: Rename EAPI macro to EINA_API in Eina library 2020-11-25 09:42:47 -03:00
eina_strbuf_common.h
eina_strbuf_template_c.x eina: Rename EAPI macro to EINA_API in Eina library 2020-11-25 09:42:47 -03:00
eina_stringshare.c eina: Rename EAPI macro to EINA_API in Eina library 2020-11-25 09:42:47 -03:00
eina_stringshare.h eina: Rename EAPI macro to EINA_API in Eina library 2020-11-25 09:42:47 -03:00
eina_thread.c Implement eina_thread for native windows 2021-04-17 16:00:32 -03:00
eina_thread.h Implement eina_thread for native windows 2021-04-17 16:00:32 -03:00
eina_thread_posix.c Implement eina_thread for native windows 2021-04-17 16:00:32 -03:00
eina_thread_queue.c eina: Rename EAPI macro to EINA_API in Eina library 2020-11-25 09:42:47 -03:00
eina_thread_queue.h eina: Rename EAPI macro to EINA_API in Eina library 2020-11-25 09:42:47 -03:00
eina_thread_win32.c Implement eina_thread for native windows 2021-04-17 16:00:32 -03:00
eina_tiler.c eina: Rename EAPI macro to EINA_API in Eina library 2020-11-25 09:42:47 -03:00
eina_tiler.h eina: Rename EAPI macro to EINA_API in Eina library 2020-11-25 09:42:47 -03:00
eina_tmpstr.c eina: Rename EAPI macro to EINA_API in Eina library 2020-11-25 09:42:47 -03:00
eina_tmpstr.h eina: Rename EAPI macro to EINA_API in Eina library 2020-11-25 09:42:47 -03:00
eina_trash.h
eina_types.h eina: Rename EAPI macro to EINA_API in Eina library 2020-11-25 09:42:47 -03:00
eina_unicode.c eina: Rename EAPI macro to EINA_API in Eina library 2020-11-25 09:42:47 -03:00
eina_unicode.h eina: Rename EAPI macro to EINA_API in Eina library 2020-11-25 09:42:47 -03:00
eina_ustrbuf.c Eina: replace Evil.h with evil_private.h and remove Evil.h when not necessary 2019-05-16 13:48:59 -04:00
eina_ustrbuf.h eina: Rename EAPI macro to EINA_API in Eina library 2020-11-25 09:42:47 -03:00
eina_ustringshare.c eina: Rename EAPI macro to EINA_API in Eina library 2020-11-25 09:42:47 -03:00
eina_ustringshare.h eina: Rename EAPI macro to EINA_API in Eina library 2020-11-25 09:42:47 -03:00
eina_util.c eina: Rename EAPI macro to EINA_API in Eina library 2020-11-25 09:42:47 -03:00
eina_util.h eina: Rename EAPI macro to EINA_API in Eina library 2020-11-25 09:42:47 -03:00
eina_value.c eina_value: Fix unchecked return value 2021-02-25 09:23:23 -05:00
eina_value.h eina: Rename EAPI macro to EINA_API in Eina library 2020-11-25 09:42:47 -03:00
eina_value_util.c eina: Rename EAPI macro to EINA_API in Eina library 2020-11-25 09:42:47 -03:00
eina_value_util.h eina: Rename EAPI macro to EINA_API in Eina library 2020-11-25 09:42:47 -03:00
eina_vector.h doxygen docs: Create Eina Vector2 group in the right place 2020-03-17 19:23:56 +01:00
eina_vpath.c eina: Rename EAPI macro to EINA_API in Eina library 2020-11-25 09:42:47 -03:00
eina_vpath.h eina: Rename EAPI macro to EINA_API in Eina library 2020-11-25 09:42:47 -03:00
eina_vpath_xdg.c Evil: remove pwd code in Evil and fix compilation failures after the removal 2019-07-28 09:27:27 +01:00
eina_win32_dllmain.c Implement eina_thread for native windows 2021-04-17 16:00:32 -03:00
eina_xattr.c eina: Rename EAPI macro to EINA_API in Eina library 2020-11-25 09:42:47 -03:00
eina_xattr.h eina: Rename EAPI macro to EINA_API in Eina library 2020-11-25 09:42:47 -03:00
meson.build Implement eina_thread for native windows 2021-04-17 16:00:32 -03:00