From b4a01412c8ecaa114c872df3938edba67eb5b517 Mon Sep 17 00:00:00 2001 From: Fredrik Noring <noring@nocrew.org> Date: Wed, 25 Mar 1998 16:25:23 +0100 Subject: [PATCH] Disk full problem fixed. Rev: lib/modules/PDB.pmod:1.2 --- lib/modules/PDB.pmod | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/lib/modules/PDB.pmod b/lib/modules/PDB.pmod index 2910bd1861..1757ee582a 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)); } -- GitLab