diff --git a/cdrskin/cdrskin.c b/cdrskin/cdrskin.c index 68020a0..34d4659 100644 --- a/cdrskin/cdrskin.c +++ b/cdrskin/cdrskin.c @@ -3796,6 +3796,12 @@ int Cdrskin_atip(struct CdrskiN *skin, int flag) Cdrskin_toc(skin,1);/*cdrecord seems to ignore -toc errors if -atip is ok */ ex:; Cdrskin_release_drive(skin,0); + + /* A61227 : + A kindof race condition with -atip on filled CD-RW and following grabs + under SuSE 9.3. Waiting seems to help. I suspect the media demon. */ + usleep(200000); + return(ret); } @@ -4759,13 +4765,14 @@ int Cdrskin_eject(struct CdrskiN *skin, int flag) if(!skin->do_eject) return(1); - /* A60923 : - Still not in libburn-0.2.2 : prevent SIGSEV on non-existent drive */ if(skin->n_drives<=skin->driveno || skin->driveno < 0) return(2); - /* <<< A61012 : retry loop might now be obsolete + /* ??? A61012 : retry loop might now be obsolete (a matching bug in burn_disc_write_sync() was removed ) */ + /* A61227 : A kindof race condition with -atip -eject on SuSE 9.3. Loop saved + me. Waiting seems to help. I suspect the media demon. */ + for(i= 0;i0 || i>=max_try-1) diff --git a/cdrskin/cdrskin_timestamp.h b/cdrskin/cdrskin_timestamp.h index d934b6e..34f3d05 100644 --- a/cdrskin/cdrskin_timestamp.h +++ b/cdrskin/cdrskin_timestamp.h @@ -1 +1 @@ -#define Cdrskin_timestamP "2006.12.27.130125" +#define Cdrskin_timestamP "2006.12.27.130239"