| 948 | |
| 949 | #if CONFIG_DARWIN |
| 950 | if (src.isSequential()) |
| 951 | { |
| 952 | qint64 bytesAvail; |
| 953 | do |
| 954 | { |
| 955 | myth_yield(); |
| 956 | |
| 957 | bytesAvail = src.size(); |
| 958 | if (bytesAvail > 0 && bytesAvail < buflen) |
| 959 | { |
| 960 | // Adding this sleep call when a small number of bytes |
| 961 | // is available seems to correct the problem with the hang |
| 962 | // in QFSFileEnginePrivate::nativeRead on MacOS. |
| 963 | // |
| 964 | // With the sleep, src.atEnd() correctly returns true |
| 965 | // after the last read. Otherwise, it returns false forever. |
| 966 | sleep(1); |
| 967 | } |
| 968 | } while (bytesAvail == 0 && !src.atEnd()); |
| 969 | |
| 970 | if (src.atEnd()) |
| 971 | { |
| 972 | break; |
| 973 | } |
| 974 | } |
| 975 | #endif |