summaryrefslogtreecommitdiffstats
path: root/winsup/cygwin
Commit message (Collapse)AuthorAgeFilesLines
* select(2): Drop checking descriptors in case of immediate timeout.Corinna Vinschen2016-01-111-6/+11
| | | | | | | * select.cc (select): Call sel.poll only if sel.wait returned select_ok. Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
* Add release message for previous commitCorinna Vinschen2016-01-091-0/+4
| | | | Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
* select: Don't timeout without setting descriptor arrays to all zeroCorinna Vinschen2016-01-091-15/+20
| | | | | | | | | | | | * select.cc (copyfd_set): Remove. (select): Don't copy local wait fd arrays over to returned fd arrays since bits set there are not accounted for in return value. Zero out returned fd arrays instead. Always call sel.poll even in case of a timeout. Always zero out fd array when timing out. Convert while/do to do/while for clarity. Use dedicated variable as return value to decouple return value from artificial return code from sel.wait. Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
* Do not treat the command line or environment like pathsJohannes Schindelin2016-01-084-13/+44
| | | | | | | | | | | | | | | | | | | | | | | | * dcrt0.cc (dll_crt0_1), environ.cc (environ_init, getwinenveq, build_env), strfuncs.cc (sys_wcstombs, sys_wcstombs_alloc), wchar.c (sys_wcstombs, sys_wcstombs_alloc): avoid mis-conversions of text that does not, actually, refer to a path or file name Detailed explanation: Our WCS -> UTF conversion handles the private Unicode page specially to allow for otherwise invalid file names. However, this handling makes no sense for command-lines, nor environment variables, which we would rather convert verbatim. As a stop-gap solution, let's just introduce a version of the sys_wcstombs() function that specifically excludes that file name conversion magic. The proper solution is to change sys_wcstombs() to assume that it is not a path that wants to be converted, and introduce sys_wcstombs_path() that does, but that is a bigger task which we leave for another patch. Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
* cygpath: Try to return system directories with correct caseCorinna Vinschen2016-01-071-0/+4
| | | | | | | | | * cygpath.cc (do_sysfolders): Drop lame workaround to fix case of directory returned by GetSystemDirectoryW. Try to fix case of any path returned by this function in case it has to return a POSIX path to support case-sensitivity. Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
* select: Set exceptfd bit if fetching mailslot info failsCorinna Vinschen2016-01-071-0/+1
| | | | | | * select.cc (peek_mailslot): Set except_ready if GetMailslotInfo fails. Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
* select.cc: Fit comments into 80 columnsCorinna Vinschen2016-01-071-11/+12
| | | | Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
* Convert utmp{x}name to int, return useful value. Define _PATH_UTMPXCorinna Vinschen2016-01-075-8/+17
| | | | | | | | | | | * syscalls.cc (utmpname): Convert to int. Return 0 if strdup worked, -1 otherwise. * include/utmpx.h (_PATH_UTMPX): Define as _PATH_UTMP. (utmpxname): Declare as int function. * include/sys/utmp.h (utmpname): Ditto. * include/cygwin/version.h: Bump API minor version. Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
* Drop use of not yet available type acl_perm_tCorinna Vinschen2016-01-071-1/+1
| | | | | | * sec_acl.cc (__aclcalcmask): Use mode_t instead of acl_perm_t Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
* Deprecate Cygwin ChangeLog fileCorinna Vinschen2016-01-072-2260/+2261
| | | | Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
* Only request WRITE_DAC rights when writing an ACLCorinna Vinschen2015-12-252-2/+8
| | | | | | | | * fhandler_disk_file.cc (fhandler_disk_file::fchmod): Only request query_write_dac rather than query_write_control access when writing an ACL. Fix a comment. Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
* aclsort: Honor calclass argument and allow recalculating ACL mask.Corinna Vinschen2015-12-242-1/+26
| | | | | | | * sec_acl.cc (__aclcalcmask): New function to recalculate ACL masks. (aclsort32): Honor calclass argument. Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
* aclfromtext: Actually return aclcnt parameterCorinna Vinschen2015-12-242-2/+10
| | | | | | * sec_acl.cc (aclfromtext32): Return missing aclcnt parameter. Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
* Use TLS buffer in ACL<->text conversionCorinna Vinschen2015-12-242-4/+11
| | | | | | | * sec_acl.cc (acltotext32): Use tmp_pathbuf rather than stack buffer. (aclfromtext32): Ditto. Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
* sec_acl.cc: Cosmetic changesCorinna Vinschen2015-12-242-14/+18
| | | | Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
* setfacl(1): Rewrite support for mask recomputationCorinna Vinschen2015-12-211-2/+4
| | | | | | | | | | | | | | | | * setfacl.cc (modacl): Move recomputing mask into new function. (check_got_mask): New function checking if mask is in input. (recompute_mask): New function to recompute mask. (addmissing): Align mask computation to Linux setfacl. (setfacl): Call check_got_mask and recompute_mask on Set, Delete and Modify actions. (usage): Rename --substitute to --set. (longopts): Add --set option. * utils.xml (setfacl): Rename --substitute to --set. * new-features.xml (ov-new2.4): Rephrase setfacl changes. Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
* Drop sys_cp_wcstombs and save two arguments per callCorinna Vinschen2015-12-184-14/+12
| | | | | | | | | * strfuncs.cc (sys_cp_wcstombs): Delete and move functionality into sys_wcstombs. * wchar.h (sys_cp_wcstombs): Drop declaration. * fhandler_console.cc (dev_console::con_to_str): Call sys_wcstombs. Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
* Add release message for previous commitCorinna Vinschen2015-12-161-0/+4
| | | | Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
* Fix crash reading invalid SIDs from passwd and group filesCorinna Vinschen2015-12-163-4/+9
| | | | | | | * grp.cc (pwdgrp::parse_group): Only copy the SID if it's valid. * passwd.cc (pwdgrp::parse_passwd): Ditto. Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
* Add usertemp to 2.4.0 release textCorinna Vinschen2015-12-151-0/+3
|
* FreeBSD compatibility for <sys/select.h>Sebastian Huber2015-12-142-8/+4
| | | | | | | | | | | | * libc/include/sys/_sigset.h: New. * libc/include/sys/select.h: Do not include <sys/types.h> and <sys/time.h> to avoid cyclic header file dependencies. Include specialized header files instead. (sigset_t): Conditionally define. * libc/include/sys/signal.h (sigset_t): Likewise. * libc/include/sys/time.h: Include <sys/select.h> if __BSD_VISIBLE. * libc/include/sys/types.h: Likewise.
* Fix regparm attribute of fhandler_base::fstat_helperKen Brown2015-12-142-1/+6
| | | | | * winsup/cygwin/fhandler_disk_file.cc (fhandler_base::fstat_helper): Align regparm attribute to declaration in fhandler.h.
* Fetch and store FileAllInformation rather than FileNetworkOpenInformationCorinna Vinschen2015-12-105-119/+83
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * path.h (class path_conv_handle): Use FILE_ALL_INFORMATION instead of FILE_NETWORK_OPEN_INFORMATION. Use definitions from ntdll.h since it's included anyway. (path_conv_handle::fai): Change name from fnoi. (path_conv::fai): Ditto. (file_get_fai): Change name from file_get_fnoi. Drop second parameter. * path.cc (file_get_fai): Ditto. Fetch FileAllInformation rather than FileNetworkOpenInformation. Convert STATUS_BUFFER_OVERFLOW to STATUS_SUCCESS. Remove workaround to fetch FileBasicInformation and FileStandardInformation on filesystems with broken FileNetworkOpenInformation handling. (symlink_info::check): Accommodate above changes. In case of using the NtQueryDirectoryFile fallback, fetch FileIdBothDirectoryInformation to get inode number as well. * fhandler_disk_file.cc (fhandler_base::fstat_by_handle): Drop outdated comment. Accommodate change to using FileAllInformation. Drop extra function calls to fetch NumberOfLinks and IndexNumber. Set ino directly from IndexNumber stored in pc.fai(). Drop second argument from call to fstat_helper. (fhandler_base::fstat_by_name): Drop second argument from call to fstat_helper. (fhandler_base::fstat_helper): Drop second parameter. Accommodate the fact that we access a FILE_ALL_INFORMATION structure now. (fhandler_base::open_fs): Set ino directly from IndexNumber stored in pc.fai(). * fhandler.h (fhandler_base::fstat_helper): Fix declaration accrdingly. Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
* Drop unused path_conv::ndisk_links methodCorinna Vinschen2015-12-093-89/+5
| | | | | | | * fhandler_disk_file.cc (path_conv::ndisk_links): Drop unused method. (fhandler_base::fstat_helper): Drop unused call to ndisk_links. Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
* Use fii instead of fai for FILE_INTERNAL_INFORMATION varsCorinna Vinschen2015-12-092-8/+14
| | | | | | | | * fhandler_disk_file.cc (path_conv::get_ino_by_handle): Rename fai to fii for clearness. (fhandler_disk_file::readdir): Ditto. Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
* In FILE_ID_BOTH_DIR_INFORMATION it's actually FileId, not IndexNumberCorinna Vinschen2015-12-093-3/+9
| | | | | | | | * ntdll.h (FILE_ID_BOTH_DIR_INFORMATION): Revert IndexNumber to FileId since it's actually right here. * fhandler_disk_file.cc: Accommodate above change. Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
* Remove unnecessary locking in pthread_setcancelstate/pthread_setcanceltypeCorinna Vinschen2015-12-082-26/+15
| | | | | | | * thread.cc (pthread::setcancelstate): Remove unnecessary locking. (pthread::setcanceltype): Ditto. Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
* Rename FileId to IndexNumber in NT structures to align with upstreamCorinna Vinschen2015-12-084-12/+20
| | | | | | | | | | * ntdll.h (FILE_ID_BOTH_DIR_INFORMATION): Rename FileId to IndexNumber to align with Microsoft naming scheme. (FILE_INTERNAL_INFORMATION): Ditto. * fhandler_disk_file.cc: Rename FileId to IndexNumber throughout. * syscalls.cc: Ditto. Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
* Fix minor style issue in _dll_crt0.Corinna Vinschen2015-12-071-1/+1
| | | | | | Fix missing space. Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
* Introduce the 'usertemp' filesystem typeJohannes Schindelin2015-12-073-1/+29
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * mount.cc (mount_info::from_fstab_line): Support mounting the current user's temp folder as /tmp/. This is particularly useful a feature when Cygwin's own files are write-protected. * pathnames.xml: document the new usertemp file system type Detailed explanation: In the context of Windows, there is a per-user directory for temporary files, by default specified via the environment variable %TEMP%. Let's allow to use that directory for our /tmp/ directory. With this patch, we introduce the special filesystem type "usertemp": By specifying none /tmp usertemp binary,posix=0 0 0 in /etc/fstab, the /tmp/ directory gets auto-mounted to the directory specified by the %TEMP% variable. This feature comes handy in particularly in scenarios where the administrator might want to write-protect the entire Cygwin directory yet still needs to allow users to write into the /tmp/ directory. This is the case in the context of Git for Windows, where the Cygwin (MSys2) root directory lives inside C:\Program Files and hence /tmp/ would not be writable otherwise. Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
* Move fd_stuff from sys/types.h to sys/select.hCorinna Vinschen2015-12-077-50/+21
| | | | | | | | | | | | | | | | | | * libc/include/sys/types.h: Move definitions of NBBY and howmany to sys/param.h. Move definitions of select(2) macros to sys/select.h. * libc/include/sys/param.h: See above. * libc/include/sys/select.h: Move Cygwin's sys/select.h here. * include/sys/select.h: Move select(2) macros from newlib's sys/types.h here. Rename howmany to _howmany to unclutter namespace. Move file to newlib. * libc/rexex.cc: Add declaration for cygwin_gethostname. * poll.cc: Include sys/param.h and locale select.h. * select.h (cygwin_select): Declare. * uname.cc: Declare cygwin_gethostname. * winsup.h: Drop declarations of cygwin_select and cygwin_gethostname. Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
* Always allocate main thread stack from pthread stack area on x86_64.Corinna Vinschen2015-12-078-79/+96
| | | | | | | | | | | | | | | | | | | | | | | | | * dcrt0.cc: Semi-revert commit 12743c2d5d2721f3a80b4d7671a349be03c1f520. (dll_crt0_0): Drop setting wow64_needs_stack_adjustment on 64 bit. (_dll_crt0): Split out 64 bit code again and always create new main thread stack, unless forked off from the non main thread in the parent. Call create_new_main_thread_stack with parent stack commitsize if started from the parent's main thread. Only call child_info_fork::alloc_stack for the latter case on 64 bit. Slightly rearrange moving rsp and rbp to new stack and document how. Revert 32 bit wow64 handling to its former self. * miscfunc.cc (create_new_main_thread_stack): Take a commitsize parameter and use it if it's not 0. Don't set _main_tls here, it's done in the caller _dll_crt0 anyway. Return stackbase - 16 bytes, rather than stacklimit (which was very wrong anyway). * miscfuncs.h (create_new_main_thread_stack): Accommodate declaration to aforementioned change. * wincap.h (wincaps::has_3264_stack_broken): Remove element. * wincap.cc: Ditto, throughout. * wow64.cc: Semi-revert to pre-12743c2d5d2721f3a80b4d7671a349be03c1f520 but keep architecture-agnostic type changes intact. Fix formatting. * wow64.h: Revert to pre-12743c2d5d2721f3a80b4d7671a349be03c1f520. Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
* Allow cygwin_conv_path(3) and cygpath(1) to emit /proc/cygdrive prefixed pathCorinna Vinschen2015-12-067-37/+73
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * include/sys/cygwin.h (CCP_PROC_CYGDRIVE): New flag. * mount.cc (mount_info::cygdrive_posix_path): Take flag values rather than just a trailing_slash_p bool. Emit /proc/cygdrive path if CCP_PROC_CYGDRIVE flag is given. (mount_info::conv_to_posix_path): Take flag values rather than just a keep_rel_p bool. Rename _p variables. Print flag value as hex in debug_printf. Call cygdrive_posix_path with flag values. * mount.h (mount_info::cygdrive_posix_path): Accommodate above change in declaration. (mount_info::conv_to_posix_path): Ditto. * fhandler_process.cc (format_process_exename): Accommodate change to mount_info::conv_to_posix_path. * path.cc (cygwin_conv_path): Ditto. * cygpath.cc (absolute_flag): Initialize to CCP_RELATIVE to simplify expressions. (cygdrive_flag): New global flag. (long_options): Add --proc-cygdrive option. (options): Add -U option. (usage): Add description for -U option. (do_sysfolders): Or cygdrive_flag to cygwin_conv_path call. (do_pathconv): Simply or absolute_flag to conv_func. Or cygdrive_flag to conv_func. (do_options): Initalize absolute_flag to CCP_RELATIVE. Initialize new cygdrive_flag. Set absolute_flag to CCP_ABSOLUTE on -a. Set cygdrive_flag to CCP_PROC_CYGDRIVE on -U. * new-features.xml (ov-new2.4): Document cygpath -U option. * utils.xml (cygpath): Ditto. * path.xml (func-cygwin-path): Add CCP_PROC_CYGDRIVE description. Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
* Add release message for workaround added with previous commitsCorinna Vinschen2015-12-031-0/+7
| | | | Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
* On 64 bit, only create new thread stack if started from 32 bit process on ↵Corinna Vinschen2015-12-036-60/+90
| | | | | | | | | | | | | | | | | | | | | | affected platforms * dcrt0.cc (dll_crt0_0): On 64 bit, set wow64_needs_stack_adjustment if not started from a 64 bit process. (_dll_crt0): Enable wow64_needs_stack_adjustment branch on 64 bit as well. Remove 64 bit only code. Introduce CREATE_STACK and FIX_STACK macros to conditionalize the code. Rearrange and partially rewrite comments. * wincap.h (wincaps::has_3264_stack_broken): New element. * wincap.cc: Implement above element throughout. (wincapc::init): Set has_3264_stack_broken to false on 32 bit. * wow64.cc: Enable functionality on 64 bit architecture, except for wow64_revert_to_original_stack. Enhance comments to explain. (wow64_eval_expected_main_stack): Make 64 bit clean. (wow64_test_for_64bit_parent): Ditto. * wow64.h: Export wow64_revert_to_original_stack on 32 bit only, everything else on all architectures. Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
* Fix thinko in /proc/<PID>/maps TEB detection on W10 1511Corinna Vinschen2015-12-032-26/+60
| | | | | | | | | | | * fhandler_process.cc (thread_info::thread_info): Accommodate the fact that TEBs take two pages. (thread_info::fill_if_match): Rewrite the method for post W10 1511 TEB detection. (format_process_maps): Add a state member to region. Fix the code to handle PEB/TEB region since W10 1511. Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
* Fix /proc/<PID>/maps output for PEB and TEBs on W10 1511Corinna Vinschen2015-12-035-10/+113
| | | | | | | | | | | | | | | | * fhandler_process.cc (heap_info::fill_if_match): Return NULL, not 0. (thread_info::fill_if_match): Ditto. (thread_info::fill_if_match): New method to extract TEB info from PEB/TEB region since W10 1511. (format_process_maps): Drop outdated FIXME comment. Add code to handle PEB/TEB region since W10 1511. * mmap.cc (posix_madvise): Align comment to new W10 1511 version. * wincap.h (wincaps::has_new_pebteb_region): New element. * wincap.cc: Implement above element throughout. (wincap_10_1511): New global wincaps to support Windows 10 since 1511. (wincapc::init): Use wincap_10_1511 for W10 builds >= 10586. Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
* Always move 64 bit main thread stack to defined pthread stack areaCorinna Vinschen2015-12-034-0/+83
| | | | | | | | | | | x86_64 only: * dcrt0.cc (_dll_crt0): Always move stack to pthread stack area. Explain why. * miscfuncs.cc (create_new_main_thread_stack): New function to create OS-like stack for main thread in pthread stack area. * miscfuncs.cc (create_new_main_thread_stack): Declare. Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
* Cleanup in dcrt0.cc and fork.ccCorinna Vinschen2015-12-033-6/+12
| | | | | | | | * dcrt0.cc (child_info_fork::alloc_stack): Fix formatting. * fork.cc (frok::parent): Fix formatting. (child_copy): Change type of res to BOOL. Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
* Always restore full TEB stack info in forkeeCorinna Vinschen2015-12-032-9/+14
| | | | | | | * dcrt0.cc (dll_crt0_1): Always restore the TEB stack info. Especially restore DeallocationStack. Fix comment. Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
* Add missing dcrt0.cc patch to previous commitCorinna Vinschen2015-12-032-1/+4
| | | | | | * dcrt0.cc (child_info_fork::alloc_stack): Don't set stackaddr to 0. Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
* Safely recognize when fork is running from main thread or another pthreadCorinna Vinschen2015-12-033-2/+10
| | | | | | | | * child_info.h (struct child_info): Add member from_main. * fork.cc (frok::child): Check from_main rather than stackaddr. (frok::parent): Set ch.from_main if running in the main thread. Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
* Rename parent stack members in child_info struct to align with OS namesCorinna Vinschen2015-12-024-28/+36
| | | | | | | | | * child_info.h (CURR_CHILD_INFO_MAGIC): Align to below change. (class child_info_fork): Rename stacktop to stacklimit. Rename stackbottom to stackbase. Accommodate name change throughout Cygwin. Rephrase comments to be clearer. Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
* Drop using _tlsbase and _tlstop in favor of access via NtCurrentTeb.Corinna Vinschen2015-12-027-40/+41
| | | | | | | | | | | | | * cygtls.h (_tlsbase): Remove. Replace throughout with NtCurrentTeb()->Tib.StackBase. (_tlstop): Remove. Replace throughout with NtCurrentTeb()->Tib.StackLimit. * dcrt0.cc (child_info_fork::alloc_stack): Move definition of local teb variable up to be used throughout. * include/cygwin/config.h (__getreent): Use inline function on both architectures. Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
* miscfuncs.cc: Fix typos in commentCorinna Vinschen2015-12-021-2/+2
|
* Only generate BUILTIN SIDs for uid/gid values <= 999Corinna Vinschen2015-11-292-2/+7
| | | | | | | * uinfo.cc (pwdgrp::fetch_account_from_windows): Only create 1-5-32-x SIDs from ids for x <= 999. Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
* Use correct gid value for Microsoft Account when /etc/group is in useCorinna Vinschen2015-11-292-2/+18
| | | | | | | | * sec_acl.cc (get_posix_access): In case owner SID == group SID, when encountering the group entry, change the value of `id' accordingly. Explain why. Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
* Save and restore MXCSR register in delayed signal handlingCorinna Vinschen2015-11-282-0/+7
| | | | | | | * gendef (sigdelayed): Save and restore content of the MXCSR register on x86_64. Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
* Belatedly create release notes for commits 2f4fef9 and 9471b0bCorinna Vinschen2015-11-271-0/+7
|
* Fix race condition when waiting for a signalCorinna Vinschen2015-11-2712-26/+63
| | | | | | | | | | | | | | | | | | | | | | | | * cygtls.h (_cygtls::wait_signal_arrived): Renamed from set_signal_arrived. (_cygtls::set_signal_arrived): New function signalling signal_arrived. (_cygtls::reset_signal_arrived): Don't reset will_wait_for_signal. (_cygtls::unwait_signal_arrived): New function only resetting will_wait_for_signal. (class wait_signal_arrived): Rename from set_signal_arrived. Accommodate name change throughout Cygwin. (wait_signal_arrived::~wait_signal_arrived): Call _cygtls::unwait_signal_arrived. Add comment. * cygserver_ipc.h (ipc_set_proc_info): Fetch signal_arrived handle via call to _cygtls::get_signal_arrived. * exceptions.cc (_cygtls::interrupt_setup): Signal signal_arrived via call to _cygtls::set_signal_arrived. (_cygtls::handle_SIGCONT): Ditto. * fhandler_socket.cc (fhandler_socket::wait_for_events): Generate WSAEVENT array prior to entering wait loop. Add cancel event object if available. Remove calls to pthread_testcancel and just call pthread::static_cancel_self if the cancel event object is signalled. Signed-off-by: Corinna Vinschen <corinna@vinschen.de>