Fixed tape I/O which didn't work when Asynch I/O was dynamically disabled by scp command 'set noasync'
This commit is contained in:
parent
d4c83e5f46
commit
01337fe114
1 changed files with 5 additions and 2 deletions
|
@ -146,7 +146,7 @@ struct tape_context *ctx = (struct tape_context *)uptr->tape_ctx; \
|
||||||
if ((!callback) || !ctx->asynch_io)
|
if ((!callback) || !ctx->asynch_io)
|
||||||
|
|
||||||
#define AIO_CALL(op, _buf, _bc, _fc, _max, _vbc, _gaplen, _bpi, _obj, _callback)\
|
#define AIO_CALL(op, _buf, _bc, _fc, _max, _vbc, _gaplen, _bpi, _obj, _callback)\
|
||||||
if (1) { \
|
if (ctx->asynch_io) { \
|
||||||
struct tape_context *ctx = \
|
struct tape_context *ctx = \
|
||||||
(struct tape_context *)uptr->tape_ctx; \
|
(struct tape_context *)uptr->tape_ctx; \
|
||||||
\
|
\
|
||||||
|
@ -167,7 +167,10 @@ if ((!callback) || !ctx->asynch_io)
|
||||||
ctx->objupdate = _obj; \
|
ctx->objupdate = _obj; \
|
||||||
ctx->callback = _callback; \
|
ctx->callback = _callback; \
|
||||||
pthread_cond_signal (&ctx->io_cond); \
|
pthread_cond_signal (&ctx->io_cond); \
|
||||||
}
|
} \
|
||||||
|
else \
|
||||||
|
if (_callback) \
|
||||||
|
(_callback) (uptr, r);
|
||||||
#define TOP_DONE 0 /* close */
|
#define TOP_DONE 0 /* close */
|
||||||
#define TOP_RDRF 1 /* sim_tape_rdrecf_a */
|
#define TOP_RDRF 1 /* sim_tape_rdrecf_a */
|
||||||
#define TOP_RDRR 2 /* sim_tape_rdrecr_a */
|
#define TOP_RDRR 2 /* sim_tape_rdrecr_a */
|
||||||
|
|
Loading…
Add table
Reference in a new issue