36
37
<th width="100%" align="center">GLib Reference Manual</th>
37
38
<td><a accesskey="n" href="glib-Spawning-Processes.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
39
<tr><td colspan="5" class="shortcuts"><nobr><a href="#id3152419" class="shortcut">Top</a>
41
<a href="#id3152598" class="shortcut">Description</a></nobr></td></tr>
40
<tr><td colspan="5" class="shortcuts">
41
<a href="#glib-Timers.synopsis" class="shortcut">Top</a>
43
<a href="#glib-Timers.description" class="shortcut">Description</a>
43
46
<div class="refentry" lang="en">
44
47
<a name="glib-Timers"></a><div class="titlepage"></div>
45
48
<div class="refnamediv"><table width="100%"><tr>
48
<a name="id3152419"></a><span class="refentrytitle">Timers</span>
50
<p>Timers — keep track of elapsed time</p>
50
<h2><span class="refentrytitle"><a name="glib-Timers.top_of_page"></a>Timers</span></h2>
51
<p>Timers — keep track of elapsed time</p>
52
53
<td valign="top" align="right"></td>
53
54
</tr></table></div>
54
55
<div class="refsynopsisdiv">
56
<a name="glib-Timers.synopsis"></a><h2>Synopsis</h2>
56
57
<pre class="synopsis">
58
59
#include <glib.h>
61
<a class="link" href="glib-Timers.html#GTimer">GTimer</a>;
62
<a class="link" href="glib-Timers.html#GTimer">GTimer</a>* <a class="link" href="glib-Timers.html#g-timer-new">g_timer_new</a> (void);
63
void <a class="link" href="glib-Timers.html#g-timer-start">g_timer_start</a> (<a class="link" href="glib-Timers.html#GTimer">GTimer</a> *timer);
64
void <a class="link" href="glib-Timers.html#g-timer-stop">g_timer_stop</a> (<a class="link" href="glib-Timers.html#GTimer">GTimer</a> *timer);
65
void <a class="link" href="glib-Timers.html#g-timer-continue">g_timer_continue</a> (<a class="link" href="glib-Timers.html#GTimer">GTimer</a> *timer);
66
<a class="link" href="glib-Basic-Types.html#gdouble">gdouble</a> <a class="link" href="glib-Timers.html#g-timer-elapsed">g_timer_elapsed</a> (<a class="link" href="glib-Timers.html#GTimer">GTimer</a> *timer,
67
<a class="link" href="glib-Basic-Types.html#gulong">gulong</a> *microseconds);
68
void <a class="link" href="glib-Timers.html#g-timer-reset">g_timer_reset</a> (<a class="link" href="glib-Timers.html#GTimer">GTimer</a> *timer);
69
void <a class="link" href="glib-Timers.html#g-timer-destroy">g_timer_destroy</a> (<a class="link" href="glib-Timers.html#GTimer">GTimer</a> *timer);
61
<a class="link" href="glib-Timers.html#GTimer" title="GTimer">GTimer</a>;
62
<a class="link" href="glib-Timers.html#GTimer" title="GTimer">GTimer</a>* <a class="link" href="glib-Timers.html#g-timer-new" title="g_timer_new ()">g_timer_new</a> (void);
63
void <a class="link" href="glib-Timers.html#g-timer-start" title="g_timer_start ()">g_timer_start</a> (<a class="link" href="glib-Timers.html#GTimer" title="GTimer">GTimer</a> *timer);
64
void <a class="link" href="glib-Timers.html#g-timer-stop" title="g_timer_stop ()">g_timer_stop</a> (<a class="link" href="glib-Timers.html#GTimer" title="GTimer">GTimer</a> *timer);
65
void <a class="link" href="glib-Timers.html#g-timer-continue" title="g_timer_continue ()">g_timer_continue</a> (<a class="link" href="glib-Timers.html#GTimer" title="GTimer">GTimer</a> *timer);
66
<a class="link" href="glib-Basic-Types.html#gdouble" title="gdouble">gdouble</a> <a class="link" href="glib-Timers.html#g-timer-elapsed" title="g_timer_elapsed ()">g_timer_elapsed</a> (<a class="link" href="glib-Timers.html#GTimer" title="GTimer">GTimer</a> *timer,
67
<a class="link" href="glib-Basic-Types.html#gulong" title="gulong">gulong</a> *microseconds);
68
void <a class="link" href="glib-Timers.html#g-timer-reset" title="g_timer_reset ()">g_timer_reset</a> (<a class="link" href="glib-Timers.html#GTimer" title="GTimer">GTimer</a> *timer);
69
void <a class="link" href="glib-Timers.html#g-timer-destroy" title="g_timer_destroy ()">g_timer_destroy</a> (<a class="link" href="glib-Timers.html#GTimer" title="GTimer">GTimer</a> *timer);
72
72
<div class="refsect1" lang="en">
73
<a name="id3152598"></a><h2>Description</h2>
73
<a name="glib-Timers.description"></a><h2>Description</h2>
75
<a class="link" href="glib-Timers.html#GTimer"><span class="type">GTimer</span></a> records a start time, and counts microseconds elapsed since that time.
75
<a class="link" href="glib-Timers.html#GTimer" title="GTimer"><span class="type">GTimer</span></a> records a start time, and counts microseconds elapsed since that time.
76
76
This is done somewhat differently on different platforms, and can be tricky to
77
get exactly right, so <a class="link" href="glib-Timers.html#GTimer"><span class="type">GTimer</span></a> provides a portable/convenient interface.
77
get exactly right, so <a class="link" href="glib-Timers.html#GTimer" title="GTimer"><span class="type">GTimer</span></a> provides a portable/convenient interface.
79
<div class="note" style="margin-left: 0.5in; margin-right: 0.5in;">
80
<h3 class="title">Note</h3>
82
<a class="link" href="glib-Timers.html#GTimer" title="GTimer"><span class="type">GTimer</span></a> uses a higher-quality clock when thread support is available.
83
Therefore, calling <a class="link" href="glib-Threads.html#g-thread-init" title="g_thread_init ()"><code class="function">g_thread_init()</code></a> while timers are running may lead to
84
unreliable results. It is best to call <a class="link" href="glib-Threads.html#g-thread-init" title="g_thread_init ()"><code class="function">g_thread_init()</code></a> before starting
85
any timers, if you are using threads at all.
80
89
<div class="refsect1" lang="en">
81
<a name="id3152632"></a><h2>Details</h2>
90
<a name="glib-Timers.details"></a><h2>Details</h2>
82
91
<div class="refsect2" lang="en">
83
<a name="id3152642"></a><h3>
84
<a name="GTimer"></a>GTimer</h3>
85
<a class="indexterm" name="id3152654"></a><pre class="programlisting">typedef struct _GTimer GTimer;</pre>
92
<a name="GTimer"></a><h3>GTimer</h3>
93
<pre class="programlisting">typedef struct _GTimer GTimer;</pre>
87
Opaque datatype that records a start time.
95
Opaque datatype that records a start time.
91
99
<div class="refsect2" lang="en">
92
<a name="id3152670"></a><h3>
93
<a name="g-timer-new"></a>g_timer_new ()</h3>
94
<a class="indexterm" name="id3152683"></a><pre class="programlisting"><a class="link" href="glib-Timers.html#GTimer">GTimer</a>* g_timer_new (void);</pre>
100
<a name="g-timer-new"></a><h3>g_timer_new ()</h3>
101
<pre class="programlisting"><a class="link" href="glib-Timers.html#GTimer" title="GTimer">GTimer</a>* g_timer_new (void);</pre>
96
Creates a new timer, and starts timing (i.e. <a class="link" href="glib-Timers.html#g-timer-start"><code class="function">g_timer_start()</code></a> is implicitly
103
Creates a new timer, and starts timing (i.e. <a class="link" href="glib-Timers.html#g-timer-start" title="g_timer_start ()"><code class="function">g_timer_start()</code></a> is implicitly
99
106
<div class="variablelist"><table border="0">
100
107
<col align="left" valign="top">
102
<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
103
<td>a new <a class="link" href="glib-Timers.html#GTimer"><span class="type">GTimer</span></a>.
109
<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
110
<td>a new <a class="link" href="glib-Timers.html#GTimer" title="GTimer"><span class="type">GTimer</span></a>.
111
116
<div class="refsect2" lang="en">
112
<a name="id3152739"></a><h3>
113
<a name="g-timer-start"></a>g_timer_start ()</h3>
114
<a class="indexterm" name="id3152751"></a><pre class="programlisting">void g_timer_start (<a class="link" href="glib-Timers.html#GTimer">GTimer</a> *timer);</pre>
117
<a name="g-timer-start"></a><h3>g_timer_start ()</h3>
118
<pre class="programlisting">void g_timer_start (<a class="link" href="glib-Timers.html#GTimer" title="GTimer">GTimer</a> *timer);</pre>
116
Marks a start time, so that future calls to <a class="link" href="glib-Timers.html#g-timer-elapsed"><code class="function">g_timer_elapsed()</code></a> will report the
117
time since <a class="link" href="glib-Timers.html#g-timer-start"><code class="function">g_timer_start()</code></a> was called. <a class="link" href="glib-Timers.html#g-timer-new"><code class="function">g_timer_new()</code></a> automatically marks the
118
start time, so no need to call <a class="link" href="glib-Timers.html#g-timer-start"><code class="function">g_timer_start()</code></a> immediately after creating the
120
Marks a start time, so that future calls to <a class="link" href="glib-Timers.html#g-timer-elapsed" title="g_timer_elapsed ()"><code class="function">g_timer_elapsed()</code></a> will report the
121
time since <a class="link" href="glib-Timers.html#g-timer-start" title="g_timer_start ()"><code class="function">g_timer_start()</code></a> was called. <a class="link" href="glib-Timers.html#g-timer-new" title="g_timer_new ()"><code class="function">g_timer_new()</code></a> automatically marks the
122
start time, so no need to call <a class="link" href="glib-Timers.html#g-timer-start" title="g_timer_start ()"><code class="function">g_timer_start()</code></a> immediately after creating the
121
125
<div class="variablelist"><table border="0">
122
126
<col align="left" valign="top">
124
<td><p><span class="term"><em class="parameter"><code>timer</code></em> :</span></p></td>
125
<td>a <a class="link" href="glib-Timers.html#GTimer"><span class="type">GTimer</span></a>.
128
<td><p><span class="term"><em class="parameter"><code>timer</code></em> :</span></p></td>
129
<td>a <a class="link" href="glib-Timers.html#GTimer" title="GTimer"><span class="type">GTimer</span></a>.
133
135
<div class="refsect2" lang="en">
134
<a name="id3152850"></a><h3>
135
<a name="g-timer-stop"></a>g_timer_stop ()</h3>
136
<a class="indexterm" name="id3152863"></a><pre class="programlisting">void g_timer_stop (<a class="link" href="glib-Timers.html#GTimer">GTimer</a> *timer);</pre>
136
<a name="g-timer-stop"></a><h3>g_timer_stop ()</h3>
137
<pre class="programlisting">void g_timer_stop (<a class="link" href="glib-Timers.html#GTimer" title="GTimer">GTimer</a> *timer);</pre>
138
Marks an end time, so calls to <a class="link" href="glib-Timers.html#g-timer-elapsed"><code class="function">g_timer_elapsed()</code></a> will return the difference
139
Marks an end time, so calls to <a class="link" href="glib-Timers.html#g-timer-elapsed" title="g_timer_elapsed ()"><code class="function">g_timer_elapsed()</code></a> will return the difference
139
140
between this end time and the start time.
141
142
<div class="variablelist"><table border="0">
142
143
<col align="left" valign="top">
144
<td><p><span class="term"><em class="parameter"><code>timer</code></em> :</span></p></td>
145
<td>a <a class="link" href="glib-Timers.html#GTimer"><span class="type">GTimer</span></a>.
145
<td><p><span class="term"><em class="parameter"><code>timer</code></em> :</span></p></td>
146
<td>a <a class="link" href="glib-Timers.html#GTimer" title="GTimer"><span class="type">GTimer</span></a>.
153
152
<div class="refsect2" lang="en">
154
<a name="id3152929"></a><h3>
155
<a name="g-timer-continue"></a>g_timer_continue ()</h3>
156
<a class="indexterm" name="id3152944"></a><pre class="programlisting">void g_timer_continue (<a class="link" href="glib-Timers.html#GTimer">GTimer</a> *timer);</pre>
153
<a name="g-timer-continue"></a><h3>g_timer_continue ()</h3>
154
<pre class="programlisting">void g_timer_continue (<a class="link" href="glib-Timers.html#GTimer" title="GTimer">GTimer</a> *timer);</pre>
158
Resumes a timer that has previously been stopped with <a class="link" href="glib-Timers.html#g-timer-stop"><code class="function">g_timer_stop()</code></a>.
159
<a class="link" href="glib-Timers.html#g-timer-stop"><code class="function">g_timer_stop()</code></a> must be called before using this function.
156
Resumes a timer that has previously been stopped with <a class="link" href="glib-Timers.html#g-timer-stop" title="g_timer_stop ()"><code class="function">g_timer_stop()</code></a>.
157
<a class="link" href="glib-Timers.html#g-timer-stop" title="g_timer_stop ()"><code class="function">g_timer_stop()</code></a> must be called before using this function.
161
159
<div class="variablelist"><table border="0">
162
160
<col align="left" valign="top">
164
<td><p><span class="term"><em class="parameter"><code>timer</code></em> :</span></p></td>
165
<td>a <a class="link" href="glib-Timers.html#GTimer"><span class="type">GTimer</span></a>.
162
<td><p><span class="term"><em class="parameter"><code>timer</code></em> :</span></p></td>
163
<td>a <a class="link" href="glib-Timers.html#GTimer" title="GTimer"><span class="type">GTimer</span></a>.
169
<p class="since">Since 2.4
167
<p class="since">Since 2.4</p>
175
170
<div class="refsect2" lang="en">
176
<a name="id3153028"></a><h3>
177
<a name="g-timer-elapsed"></a>g_timer_elapsed ()</h3>
178
<a class="indexterm" name="id3153040"></a><pre class="programlisting"><a class="link" href="glib-Basic-Types.html#gdouble">gdouble</a> g_timer_elapsed (<a class="link" href="glib-Timers.html#GTimer">GTimer</a> *timer,
179
<a class="link" href="glib-Basic-Types.html#gulong">gulong</a> *microseconds);</pre>
171
<a name="g-timer-elapsed"></a><h3>g_timer_elapsed ()</h3>
172
<pre class="programlisting"><a class="link" href="glib-Basic-Types.html#gdouble" title="gdouble">gdouble</a> g_timer_elapsed (<a class="link" href="glib-Timers.html#GTimer" title="GTimer">GTimer</a> *timer,
173
<a class="link" href="glib-Basic-Types.html#gulong" title="gulong">gulong</a> *microseconds);</pre>
181
175
If <em class="parameter"><code>timer</code></em> has been started but not stopped, obtains the time since the timer was
182
176
started. If <em class="parameter"><code>timer</code></em> has been stopped, obtains the elapsed time between the time
222
214
<div class="refsect2" lang="en">
223
<a name="id3153180"></a><h3>
224
<a name="g-timer-reset"></a>g_timer_reset ()</h3>
225
<a class="indexterm" name="id3153193"></a><pre class="programlisting">void g_timer_reset (<a class="link" href="glib-Timers.html#GTimer">GTimer</a> *timer);</pre>
215
<a name="g-timer-reset"></a><h3>g_timer_reset ()</h3>
216
<pre class="programlisting">void g_timer_reset (<a class="link" href="glib-Timers.html#GTimer" title="GTimer">GTimer</a> *timer);</pre>
227
This function is useless; it's fine to call <a class="link" href="glib-Timers.html#g-timer-start"><code class="function">g_timer_start()</code></a> on an
228
already-started timer to reset the start time, so <a class="link" href="glib-Timers.html#g-timer-reset"><code class="function">g_timer_reset()</code></a> serves no
218
This function is useless; it's fine to call <a class="link" href="glib-Timers.html#g-timer-start" title="g_timer_start ()"><code class="function">g_timer_start()</code></a> on an
219
already-started timer to reset the start time, so <a class="link" href="glib-Timers.html#g-timer-reset" title="g_timer_reset ()"><code class="function">g_timer_reset()</code></a> serves no
231
222
<div class="variablelist"><table border="0">
232
223
<col align="left" valign="top">
234
<td><p><span class="term"><em class="parameter"><code>timer</code></em> :</span></p></td>
235
<td>a <a class="link" href="glib-Timers.html#GTimer"><span class="type">GTimer</span></a>.
225
<td><p><span class="term"><em class="parameter"><code>timer</code></em> :</span></p></td>
226
<td>a <a class="link" href="glib-Timers.html#GTimer" title="GTimer"><span class="type">GTimer</span></a>.
243
232
<div class="refsect2" lang="en">
244
<a name="id3153271"></a><h3>
245
<a name="g-timer-destroy"></a>g_timer_destroy ()</h3>
246
<a class="indexterm" name="id3153283"></a><pre class="programlisting">void g_timer_destroy (<a class="link" href="glib-Timers.html#GTimer">GTimer</a> *timer);</pre>
233
<a name="g-timer-destroy"></a><h3>g_timer_destroy ()</h3>
234
<pre class="programlisting">void g_timer_destroy (<a class="link" href="glib-Timers.html#GTimer" title="GTimer">GTimer</a> *timer);</pre>
248
236
Destroys a timer, freeing associated resources.
250
238
<div class="variablelist"><table border="0">
251
239
<col align="left" valign="top">
253
<td><p><span class="term"><em class="parameter"><code>timer</code></em> :</span></p></td>
254
<td>a <a class="link" href="glib-Timers.html#GTimer"><span class="type">GTimer</span></a> to destroy.
241
<td><p><span class="term"><em class="parameter"><code>timer</code></em> :</span></p></td>
242
<td>a <a class="link" href="glib-Timers.html#GTimer" title="GTimer"><span class="type">GTimer</span></a> to destroy.
262
<div class="refsect1" lang="en">
263
<a name="id3153339"></a><div class="refsect2" lang="en"><a name="id3153340"></a></div>
265
<div class="refsect2" lang="en"><a name="id3153342"></a></div>
251
Generated by GTK-Doc V1.11</div>