| 172 | } |
| 173 | |
| 174 | size_t PTY::Slave_Read(char* buffer, size_t count){ |
| 175 | thread_t* thread = GetCPULocal()->currentThread; |
| 176 | |
| 177 | while(thread->state != ThreadStateZombie && IsCanonical() && !slave.lines) Scheduler::BlockCurrentThread(slaveBlocker); |
| 178 | while(thread->state != ThreadStateZombie && !IsCanonical() && !slave.bufferPos) Scheduler::BlockCurrentThread(slaveBlocker); |
| 179 | |
| 180 | if(thread->state == ThreadStateZombie){ |
| 181 | slaveBlocker.Remove(thread); |
| 182 | return -1; |
| 183 | } |
| 184 | |
| 185 | return slave.Read(buffer, count); |
| 186 | } |
| 187 | |
| 188 | size_t PTY::Master_Write(char* buffer, size_t count){ |
| 189 | size_t ret = slave.Write(buffer, count); |
no test coverage detected