forked from Imagelibrary/rtems
posix/aio: modified insertion of sync requests
now sync requests are appended at the end of the appropriate queue Closes #5176
This commit is contained in:
@@ -393,18 +393,24 @@ static void rtems_aio_insert_prio(
|
|||||||
AIO_printf( "First in chain \n" );
|
AIO_printf( "First in chain \n" );
|
||||||
rtems_chain_prepend( chain, &req->next_prio );
|
rtems_chain_prepend( chain, &req->next_prio );
|
||||||
} else {
|
} else {
|
||||||
AIO_printf( "Add by priority \n" );
|
|
||||||
int prio = ((rtems_aio_request *) node)->aiocbp->aio_reqprio;
|
|
||||||
|
|
||||||
while (
|
if ( req->op_type == AIO_OP_SYNC ) {
|
||||||
req->aiocbp->aio_reqprio > prio &&
|
AIO_printf( "Sync request. Append to end of chain \n" );
|
||||||
!rtems_chain_is_tail( chain, node )
|
rtems_chain_append( chain, &req->next_prio );
|
||||||
) {
|
} else {
|
||||||
node = rtems_chain_next( node );
|
AIO_printf( "Add by priority \n" );
|
||||||
prio = ((rtems_aio_request *) node)->aiocbp->aio_reqprio;
|
int prio = ((rtems_aio_request *) node)->aiocbp->aio_reqprio;
|
||||||
|
|
||||||
|
while (
|
||||||
|
req->aiocbp->aio_reqprio > prio &&
|
||||||
|
!rtems_chain_is_tail( chain, node )
|
||||||
|
) {
|
||||||
|
node = rtems_chain_next( node );
|
||||||
|
prio = ((rtems_aio_request *) node)->aiocbp->aio_reqprio;
|
||||||
|
}
|
||||||
|
|
||||||
|
rtems_chain_insert( node->previous, &req->next_prio );
|
||||||
}
|
}
|
||||||
|
|
||||||
rtems_chain_insert( node->previous, &req->next_prio );
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user