diff options
Diffstat (limited to 'lib/Handle.cc')
| -rw-r--r-- | lib/Handle.cc | 11 | 
1 files changed, 4 insertions, 7 deletions
diff --git a/lib/Handle.cc b/lib/Handle.cc index c1fbc8c..e5a23a3 100644 --- a/lib/Handle.cc +++ b/lib/Handle.cc @@ -20,7 +20,7 @@ int Handle::GetHandle() {      return h;  } -ssize_t Handle::write(const void *buf, size_t count) throw (IOGeneral) { +ssize_t Handle::write(const void *buf, size_t count) throw (GeneralException) {      ssize_t r, tr = 0;      bool done, full = false; @@ -40,7 +40,7 @@ ssize_t Handle::write(const void *buf, size_t count) throw (IOGeneral) {  		    done = false;  		    full = true;  		    if (nonblock) { -			throw IOAgain(); +			throw TaskSwitch();  		    } else {  			sleep(1);  		    } @@ -58,19 +58,16 @@ ssize_t Handle::write(const void *buf, size_t count) throw (IOGeneral) {      return r + tr;  } -ssize_t Handle::read(void *buf, size_t count) throw (IOGeneral) { +ssize_t Handle::read(void *buf, size_t count) throw (GeneralException) {      ssize_t r;      errno = 0;      if ((r = ::read(h, buf, count)) < 0) { -	    cerr << "read: throwing exception...\n";  	if ((!errno) || (errno = EAGAIN)) {  	    // Avant de déclarer une erreur, on vérifie si ce n'est pas un  	    // problème lié au fait qu'il n'y a plus d'octets. -	    cerr << "Throwing a 'again' exception.\n"; -	    throw IOAgain(); +	    throw TaskSwitch();  	} else { -	    cerr << "Throwing an unknow exception.\n";  	    throw IOException(GetName(), IO_READ, count);  	}      }  | 
