diff --git a/lib/modules/PDB.pmod b/lib/modules/PDB.pmod index 2910bd1861971b0e83c5deef6a7fd78fca83d394..1757ee582a0c5446b6060a1e05475a7029536545 100644 --- a/lib/modules/PDB.pmod +++ b/lib/modules/PDB.pmod @@ -1,5 +1,5 @@ /* - * $Id: PDB.pmod,v 1.1 1998/03/23 17:45:29 noring Exp $ + * $Id: PDB.pmod,v 1.2 1998/03/25 15:25:23 noring Exp $ */ #if constant(thread_create) @@ -37,15 +37,20 @@ class FileIO { int n; for(;;) { n = o->write(d); - if(!sov || n == sizeof(d) || n<0) + if(!sov || n == sizeof(d) || (n<0 && !(<11,12,16,24,28,49>)[o->errno()])) break; d = d[n..]; if(!warned_already) { - PDB_WARN(ctx+": Disk seems to be full."); + if(n<0) + PDB_WARN(ctx+": "+strerror(o->errno())+" (sleeping)"); + else + PDB_WARN(ctx+": Disk seems to be full. (sleeping)"); warned_already=1; } sleep(1); } + if(warned_already) + PDB_WARN(ctx+": I'm OK now."); return (n<0? n : (n==strlen(d)? 1 : 0)); }