comparison gtk/dw.c @ 237:efa724294b5f

Use an internal sleep function to avoid needing dwcompat.
author bsmith@81767d24-ef19-dc11-ae90-00e081727c95
date Fri, 14 Feb 2003 16:25:03 +0000
parents f2435b378aed
children 403b07f873e1
comparison
equal deleted inserted replaced
236:5592cdeb29cf 237:efa724294b5f
93 #else 93 #else
94 gint _tree_select_event(GtkTree *tree, GtkWidget *child, gpointer data); 94 gint _tree_select_event(GtkTree *tree, GtkWidget *child, gpointer data);
95 #endif 95 #endif
96 96
97 97
98 void msleep(long period);
99
100 typedef struct 98 typedef struct
101 { 99 {
102 void *func; 100 void *func;
103 char name[30]; 101 char name[30];
104 102
137 /* Alignment flags */ 135 /* Alignment flags */
138 #define DW_CENTER 0.5f 136 #define DW_CENTER 0.5f
139 #define DW_LEFT 0.0f 137 #define DW_LEFT 0.0f
140 #define DW_RIGHT 1.0f 138 #define DW_RIGHT 1.0f
141 139
140 void _dw_msleep(long period)
141 {
142 #ifdef __sun__
143 /* usleep() isn't threadsafe on Solaris */
144 struct timespec req;
145
146 req.tv_sec = 0;
147 req.tv_nsec = period * 10000000;
148
149 nanosleep(&req, NULL);
150 #else
151 usleep(period * 1000);
152 #endif
153 }
154
142 /* Finds the translation function for a given signal name */ 155 /* Finds the translation function for a given signal name */
143 void *_findsigfunc(char *signame) 156 void *_findsigfunc(char *signame)
144 { 157 {
145 int z; 158 int z;
146 159
821 { 834 {
822 gdk_threads_enter(); 835 gdk_threads_enter();
823 if(gtk_events_pending()) 836 if(gtk_events_pending())
824 gtk_main_iteration(); 837 gtk_main_iteration();
825 else 838 else
826 msleep(1); 839 _dw_msleep(1);
827 gdk_threads_leave(); 840 gdk_threads_leave();
828 gettimeofday(&tv, NULL); 841 gettimeofday(&tv, NULL);
829 } 842 }
830 } 843 }
831 else 844 else
832 msleep(milliseconds); 845 _dw_msleep(milliseconds);
833 } 846 }
834 847
835 /* 848 /*
836 * Processes a single message iteration and returns. 849 * Processes a single message iteration and returns.
837 */ 850 */