You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

89 lines
3.8KB

  1. <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
  2. <html>
  3. <!-- Created by GNU Texinfo 6.5, http://www.gnu.org/software/texinfo/ -->
  4. <head>
  5. <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
  6. <title>__tz_lock (The Red Hat newlib C Library)</title>
  7. <meta name="description" content="__tz_lock (The Red Hat newlib C Library)">
  8. <meta name="keywords" content="__tz_lock (The Red Hat newlib C Library)">
  9. <meta name="resource-type" content="document">
  10. <meta name="distribution" content="global">
  11. <meta name="Generator" content="makeinfo">
  12. <link href="index.html#Top" rel="start" title="Top">
  13. <link href="Document-Index.html#Document-Index" rel="index" title="Document Index">
  14. <link href="Document-Index.html#SEC_Contents" rel="contents" title="Table of Contents">
  15. <link href="Timefns.html#Timefns" rel="up" title="Timefns">
  16. <link href="tzset.html#tzset" rel="next" title="tzset">
  17. <link href="time.html#time" rel="prev" title="time">
  18. <style type="text/css">
  19. <!--
  20. a.summary-letter {text-decoration: none}
  21. blockquote.indentedblock {margin-right: 0em}
  22. blockquote.smallindentedblock {margin-right: 0em; font-size: smaller}
  23. blockquote.smallquotation {font-size: smaller}
  24. div.display {margin-left: 3.2em}
  25. div.example {margin-left: 3.2em}
  26. div.lisp {margin-left: 3.2em}
  27. div.smalldisplay {margin-left: 3.2em}
  28. div.smallexample {margin-left: 3.2em}
  29. div.smalllisp {margin-left: 3.2em}
  30. kbd {font-style: oblique}
  31. pre.display {font-family: inherit}
  32. pre.format {font-family: inherit}
  33. pre.menu-comment {font-family: serif}
  34. pre.menu-preformatted {font-family: serif}
  35. pre.smalldisplay {font-family: inherit; font-size: smaller}
  36. pre.smallexample {font-size: smaller}
  37. pre.smallformat {font-family: inherit; font-size: smaller}
  38. pre.smalllisp {font-size: smaller}
  39. span.nolinebreak {white-space: nowrap}
  40. span.roman {font-family: initial; font-weight: normal}
  41. span.sansserif {font-family: sans-serif; font-weight: normal}
  42. ul.no-bullet {list-style: none}
  43. -->
  44. </style>
  45. </head>
  46. <body lang="en">
  47. <a name="g_t_005f_005ftz_005flock"></a>
  48. <div class="header">
  49. <p>
  50. Next: <a href="tzset.html#tzset" accesskey="n" rel="next">tzset</a>, Previous: <a href="time.html#time" accesskey="p" rel="prev">time</a>, Up: <a href="Timefns.html#Timefns" accesskey="u" rel="up">Timefns</a> &nbsp; [<a href="Document-Index.html#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="Document-Index.html#Document-Index" title="Index" rel="index">Index</a>]</p>
  51. </div>
  52. <hr>
  53. <a name="g_t_005f_005ftz_005flock_002c-_005f_005ftz_005funlock_002d_002d_002dlock-time-zone-global-variables"></a>
  54. <h3 class="section">8.10 <code>__tz_lock</code>, <code>__tz_unlock</code>&mdash;lock time zone global variables</h3>
  55. <a name="index-_005f_005ftz_005flock"></a>
  56. <a name="index-_005f_005ftz_005funlock"></a>
  57. <p><strong>Synopsis</strong>
  58. </p><div class="example">
  59. <pre class="example">#include &quot;local.h&quot;
  60. void __tz_lock (void);
  61. void __tz_unlock (void);
  62. </pre></div>
  63. <p><strong>Description</strong><br>
  64. The <code>tzset</code> facility functions call these functions when they need to
  65. ensure the values of global variables. The version of these routines
  66. supplied in the library use the lock API defined in sys/lock.h. If multiple
  67. threads of execution can call the time functions and give up scheduling in
  68. the middle, then you you need to define your own versions of these functions
  69. in order to safely lock the time zone variables during a call. If you do
  70. not, the results of <code>localtime</code>, <code>mktime</code>, <code>ctime</code>, and <code>strftime</code>
  71. are undefined.
  72. </p>
  73. <p>The lock <code>__tz_lock</code> may not be called recursively; that is,
  74. a call <code>__tz_lock</code> will always lock all subsequent <code>__tz_lock</code> calls
  75. until the corresponding <code>__tz_unlock</code> call on the same thread is made.
  76. </p>
  77. <br>
  78. </body>
  79. </html>