Changeset b44e7cc21fd5d9eab3378b8d277135b3975b2b15
- Timestamp:
- 14/03/07 17:10:14
(2 years ago)
- Author:
- Rémi Denis-Courmont <rem@videolan.org>
- git-committer:
- Rémi Denis-Courmont <rem@videolan.org> 1173888614 +0000
- git-parent:
[f49d815ad696220ebe2a97cdd8d2f09d129e0022]
- git-author:
- Rémi Denis-Courmont <rem@videolan.org> 1173888614 +0000
- Message:
Code simplification
-
Files:
-
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
| rf7705ea |
rb44e7cc |
|
| 204 | 204 | const sigset_t *set = (sigset_t *)data; |
|---|
| 205 | 205 | time_t abort_time = 0; |
|---|
| 206 | | vlc_bool_t b_die = VLC_FALSE; |
|---|
| 207 | | |
|---|
| 208 | | #ifdef __APPLE__ |
|---|
| 209 | | /* We really prefer the "force quit" menu item to act immediately */ |
|---|
| 210 | | b_die = VLC_TRUE; |
|---|
| 211 | | #endif |
|---|
| 212 | 206 | |
|---|
| 213 | 207 | for (;;) |
|---|
| … | … | |
| 227 | 221 | |
|---|
| 228 | 222 | pthread_setcancelstate (PTHREAD_CANCEL_DISABLE, &state); |
|---|
| 229 | | if (!b_die) |
|---|
| | 223 | if (abort_time == 0) |
|---|
| 230 | 224 | { |
|---|
| 231 | | b_die = VLC_TRUE; |
|---|
| 232 | | abort_time = time (NULL); |
|---|
| | 225 | time (&abort_time); |
|---|
| | 226 | abort_time += 2; |
|---|
| 233 | 227 | |
|---|
| 234 | 228 | fprintf (stderr, "signal %d received, terminating vlc - do it " |
|---|
| … | … | |
| 238 | 232 | Kill (); |
|---|
| 239 | 233 | } |
|---|
| 240 | | else if( time( NULL ) > abort_time + 2 ) |
|---|
| 241 | | { |
|---|
| 242 | | /* If user asks again 1 or 2 seconds later, die badly */ |
|---|
| | 234 | else |
|---|
| | 235 | if (time (NULL) <= abort_time) |
|---|
| | 236 | { |
|---|
| | 237 | /* If user asks again more than 2 seconds later, die badly */ |
|---|
| 243 | 238 | pthread_sigmask (SIG_UNBLOCK, set, NULL); |
|---|
| 244 | 239 | fprintf (stderr, "user insisted too much, dying badly\n"); |
|---|
| … | … | |
| 251 | 246 | |
|---|
| 252 | 247 | |
|---|
| 253 | | #include <stdbool.h> |
|---|
| | 248 | static void KillOnce (void) |
|---|
| | 249 | { |
|---|
| | 250 | VLC_Die (0); |
|---|
| | 251 | } |
|---|
| | 252 | |
|---|
| 254 | 253 | static void Kill (void) |
|---|
| 255 | 254 | { |
|---|
| 256 | | static pthread_mutex_t lock = PTHREAD_MUTEX_INITIALIZER; |
|---|
| 257 | | static bool killed = false;; |
|---|
| 258 | | pthread_mutex_lock (&lock); |
|---|
| 259 | | if (!killed) |
|---|
| 260 | | { |
|---|
| 261 | | VLC_Die (0); |
|---|
| 262 | | killed = true; |
|---|
| 263 | | } |
|---|
| 264 | | pthread_mutex_unlock (&lock); |
|---|
| | 255 | static pthread_once_t once = PTHREAD_ONCE_INIT; |
|---|
| | 256 | pthread_once (KillOnce); |
|---|
| 265 | 257 | } |
|---|
| 266 | 258 | |
|---|