1  /* Single-thread optimization definitions.  Linux version.
       2     Copyright (C) 2017-2023 Free Software Foundation, Inc.
       3  
       4     This file is part of the GNU C Library.
       5  
       6     The GNU C Library is free software; you can redistribute it and/or
       7     modify it under the terms of the GNU Lesser General Public
       8     License as published by the Free Software Foundation; either
       9     version 2.1 of the License, or (at your option) any later version.
      10  
      11     The GNU C Library is distributed in the hope that it will be useful,
      12     but WITHOUT ANY WARRANTY; without even the implied warranty of
      13     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
      14     Lesser General Public License for more details.
      15  
      16     You should have received a copy of the GNU Lesser General Public
      17     License along with the GNU C Library; if not, see
      18     <https://www.gnu.org/licenses/>.  */
      19  
      20  #ifndef _SYSDEP_CANCEL_H
      21  #define _SYSDEP_CANCEL_H
      22  
      23  #include <sysdep.h>
      24  #include <tls.h>
      25  #include <errno.h>
      26  
      27  /* Set cancellation mode to asynchronous.  */
      28  extern int __pthread_enable_asynccancel (void);
      29  libc_hidden_proto (__pthread_enable_asynccancel)
      30  #define LIBC_CANCEL_ASYNC() __pthread_enable_asynccancel ()
      31  
      32  /* Reset to previous cancellation mode.  */
      33  extern void __pthread_disable_asynccancel (int oldtype);
      34  libc_hidden_proto (__pthread_disable_asynccancel)
      35  #define LIBC_CANCEL_RESET(oldtype) __pthread_disable_asynccancel (oldtype)
      36  
      37  #endif