Changeset 3104
- Timestamp:
- 03/05/10 05:15:28 (6 months ago)
- Location:
- libburn/trunk
- Files:
-
- 4 modified
-
cdrskin/cdrskin_timestamp.h (modified) (1 diff)
-
libburn/drive.c (modified) (2 diffs)
-
libburn/drive.h (modified) (1 diff)
-
libburn/init.c (modified) (3 diffs)
Legend:
- Unmodified
- Added
- Removed
-
libburn/trunk/cdrskin/cdrskin_timestamp.h
r3103 r3104 1 #define Cdrskin_timestamP "2010.03.05. 091432"1 #define Cdrskin_timestamP "2010.03.05.111712" -
libburn/trunk/libburn/drive.c
r3102 r3104 1905 1905 1906 1906 1907 fprintf(stderr, "libburn_EXPERIMENTAL: burn_abort_5(%d,%d)\n", patience, flag); 1907 /* 1908 fprintf(stderr, 1909 "libburn_EXPERIMENTAL: burn_abort_5(%d,%d)\n", patience, flag); 1910 */ 1908 1911 1909 1912 current_time = start_time = pacifier_time = time(0); … … 1986 1989 return(still_not_done == 0); 1987 1990 } 1988 1989 1990 #ifdef NIX1991 1992 /* <<< did not help. Is on its way out */1993 /* ts B00226 */1994 /* Wait for the most delicate drive states to end1995 */1996 int burn_abort_write(int patience,1997 int (*pacifier_func)(void *handle, int patience, int elapsed),1998 void *handle)1999 {2000 int ret, i, still_not_done= 1, pacifier_off= 0;2001 unsigned long wait_grain= 100000;2002 time_t start_time, current_time, pacifier_time, end_time;2003 struct burn_drive *d;2004 2005 fprintf(stderr, "libburn_EXPERIMENTAL: burn_abort_write\n");2006 2007 current_time = start_time = pacifier_time = time(0);2008 end_time = start_time + patience;2009 2010 while(current_time < end_time || patience <= 0) {2011 still_not_done = 0;2012 2013 for(i = 0; i < drivetop + 1; i++) {2014 d = &(drive_array[i]);2015 if(d->global_index < 0)2016 continue;2017 if(d->busy != BURN_DRIVE_WRITING &&2018 d->busy != BURN_DRIVE_WRITING_LEADIN &&2019 d->busy != BURN_DRIVE_WRITING_LEADOUT &&2020 d->busy != BURN_DRIVE_WRITING_PREGAP &&2021 d->busy != BURN_DRIVE_CLOSING_TRACK &&2022 d->busy != BURN_DRIVE_CLOSING_SESSION)2023 continue;2024 still_not_done = 1;2025 }2026 2027 if(still_not_done == 0 || patience <= 0)2028 break;2029 usleep(wait_grain);2030 current_time = time(0);2031 if(current_time>pacifier_time) {2032 if(pacifier_func != NULL && !pacifier_off) {2033 ret = (*pacifier_func)(handle, patience,2034 current_time - start_time);2035 pacifier_off = (ret <= 0);2036 }2037 pacifier_time = current_time;2038 }2039 }2040 if (current_time - start_time > patience - 3)2041 patience = current_time - start_time + 3;2042 ret = burn_abort_5(patience, pacifier_func, handle,2043 current_time - start_time, 0);2044 return ret;2045 }2046 2047 #endif /* NIX */2048 1991 2049 1992 -
libburn/trunk/libburn/drive.h
r3102 r3104 142 142 int burn_drive_is_listed(char *path, struct burn_drive **found, int flag); 143 143 144 #ifdef NIX145 /* <<< did not help. Is on its way out */146 /* ts B00226 */147 int burn_abort_write(int patience,148 int (*pacifier_func)(void *handle, int patience, int elapsed),149 void *handle);150 #endif /* NIX */151 144 152 145 /* ts B00226 : Outsourced backend of burn_abort() -
libburn/trunk/libburn/init.c
r3102 r3104 354 354 #define Libburn_new_thread_signal_handleR 1 355 355 /* 356 */357 356 #define Libburn_signal_handler_verbouS 1 357 */ 358 358 359 359 int ret; … … 504 504 if(burn_builtin_signal_action == 0) 505 505 burn_builtin_signal_action = 1; 506 507 fprintf(stderr, "libburn_EXPERIMENTAL: mode = %d , burn_builtin_signal_action = %d\n",508 mode, burn_builtin_signal_action);509 510 506 Cleanup_set_handlers(handle, (Cleanup_app_handler_T) handler, 511 507 (mode & 15) | 4); … … 532 528 abort_control_thread != pthread_self()) 533 529 return 1; 534 535 #ifdef NIX536 burn_abort_write(4440, burn_abort_pacifier, abort_message_prefix);537 #else538 530 burn_abort(4440, burn_abort_pacifier, abort_message_prefix); 539 #endif540 541 531 fprintf(stderr, 542 532 "\n%sABORT : Program done. Even if you do not see a shell prompt.\n\n",
