projects
/
platform
/
upstream
/
glib.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
d3fe2ef
)
switch GSocket to monotonic time for timeouts
author
Ryan Lortie
<desrt@desrt.ca>
Fri, 22 Oct 2010 17:16:57 +0000
(19:16 +0200)
committer
Ryan Lortie
<desrt@desrt.ca>
Wed, 27 Oct 2010 13:22:13 +0000
(09:22 -0400)
gio/gsocket.c
patch
|
blob
|
history
diff --git
a/gio/gsocket.c
b/gio/gsocket.c
index
9ff3597
..
637dcd4
100644
(file)
--- a/
gio/gsocket.c
+++ b/
gio/gsocket.c
@@
-2411,7
+2411,7
@@
typedef struct {
GIOCondition condition;
GCancellable *cancellable;
GPollFD cancel_pollfd;
GIOCondition condition;
GCancellable *cancellable;
GPollFD cancel_pollfd;
- GTime
Val
timeout_time;
+ GTime
Spec
timeout_time;
} GSocketSource;
static gboolean
} GSocketSource;
static gboolean
@@
-2425,11
+2425,11
@@
socket_source_prepare (GSource *source,
if (socket_source->timeout_time.tv_sec)
{
if (socket_source->timeout_time.tv_sec)
{
- GTime
Val
now;
+ GTime
Spec
now;
- g_source_get_
current_
time (source, &now);
+ g_source_get_time (source, &now);
*timeout = ((socket_source->timeout_time.tv_sec - now.tv_sec) * 1000 +
*timeout = ((socket_source->timeout_time.tv_sec - now.tv_sec) * 1000 +
- (socket_source->timeout_time.tv_
usec - now.tv_usec) / 1
000);
+ (socket_source->timeout_time.tv_
nsec - now.tv_nsec) / 1000
000);
if (*timeout < 0)
{
socket_source->socket->priv->timed_out = TRUE;
if (*timeout < 0)
{
socket_source->socket->priv->timed_out = TRUE;
@@
-2547,13
+2547,13
@@
socket_source_new (GSocket *socket,
if (socket->priv->timeout)
{
if (socket->priv->timeout)
{
- g_get_
current
_time (&socket_source->timeout_time);
+ g_get_
monotonic
_time (&socket_source->timeout_time);
socket_source->timeout_time.tv_sec += socket->priv->timeout;
}
else
{
socket_source->timeout_time.tv_sec = 0;
socket_source->timeout_time.tv_sec += socket->priv->timeout;
}
else
{
socket_source->timeout_time.tv_sec = 0;
- socket_source->timeout_time.tv_
u
sec = 0;
+ socket_source->timeout_time.tv_
n
sec = 0;
}
return source;
}
return source;