UnixOperatingSystem.st
branchjv
changeset 18631 27ffa826691b
parent 18630 a74d669db937
child 18680 79953362f1ca
equal deleted inserted replaced
18630:a74d669db937 18631:27ffa826691b
  9144 
  9144 
  9145     if (__isSmallInteger(bufferOrInteger) && (wanted = __smallIntegerVal(bufferOrInteger) <= 4)) {
  9145     if (__isSmallInteger(bufferOrInteger) && (wanted = __smallIntegerVal(bufferOrInteger) <= 4)) {
  9146         int buf = 0;
  9146         int buf = 0;
  9147 
  9147 
  9148         do {
  9148         do {
  9149             cnt = getrandom(&buf + gotSoFar, wanted - gotSoFar, 0);
  9149             cnt = syscall(SYS_getrandom, &buf + gotSoFar, wanted - gotSoFar, 0);
  9150             if (cnt < 0) {
  9150             if (cnt < 0) {
  9151 		if (errno != EINTR && errno != EAGAIN)
  9151 		if (errno != EINTR && errno != EAGAIN)
  9152                     goto error;
  9152                     goto error;
  9153             } else {
  9153             } else {
  9154                 gotSoFar = gotSoFar + cnt;
  9154                 gotSoFar = gotSoFar + cnt;
  9163 	buffer = __stringVal(bufferOrInteger);
  9163 	buffer = __stringVal(bufferOrInteger);
  9164     } else
  9164     } else
  9165         goto error;
  9165         goto error;
  9166 
  9166 
  9167     do {
  9167     do {
  9168         cnt = getrandom(buffer + gotSoFar, wanted - gotSoFar, 0);
  9168         cnt = syscall(SYS_getrandom, buffer + gotSoFar, wanted - gotSoFar, 0);
  9169         if (cnt < 0) {
  9169         if (cnt < 0) {
  9170 	    if (errno != EINTR && errno != EAGAIN)
  9170 	    if (errno != EINTR && errno != EAGAIN)
  9171                 goto error;
  9171                 goto error;
  9172 	    buffer = __isByteArray(bufferOrInteger) ?
  9172 	    buffer = __isByteArray(bufferOrInteger) ?
  9173 			__byteArrayVal(bufferOrInteger) : __stringVal(bufferOrInteger);
  9173 			__byteArrayVal(bufferOrInteger) : __stringVal(bufferOrInteger);