Update TODO, cosmetic changes, spelling -- US English spells it canceled and canceling vs cancelled and cancelling. No idea why.

This commit is contained in:
Gregory Nutt 2016-12-09 18:39:40 -06:00
parent 03a58b2ebc
commit a0f567f4a3
7 changed files with 38 additions and 34 deletions

30
TODO
View File

@ -595,34 +595,34 @@ o pthreads (sched/pthreads)
the following functions. There are some execptions as noted:
accept() mq_timedsend() NA putpmsg() sigtimedwait()
-4 aio_suspend() NA msgrcv() pwrite() NA sigwait()
04 aio_suspend() NA msgrcv() pwrite() NA sigwait()
NA clock_nanosleep() NA msgsnd() read() sigwaitinfo()
close() NA msync() NA readv() -1 sleep()
connect() nanosleep() recv() -2 system()
OK creat() open() recvfrom() NA tcdrain()
fcntl() pause() NA recvmsg() -1 usleep()
NA fdatasync() poll() select() OK wait()
close() NA msync() NA readv() 01 sleep()
connect() nanosleep() recv() 02 system()
-- creat() open() recvfrom() NA tcdrain()
fcntl() pause() NA recvmsg() 01 usleep()
NA fdatasync() poll() select() -- wait()
fsync() pread() sem_timedwait() waitid()
NA getmsg() NA pselect() sem_wait() waitpid()
NA getpmsg() pthread_cond_timedwait() send() write()
NA lockf() pthread_cond_wait() NA sendmsg() NA writev()
mq_receive() pthread_join() sendto()
mq_send() pthread_testcancel() -3 sigpause()
mq_send() pthread_testcancel() 03 sigpause()
mq_timedreceive() NA putmsg() sigsuspend()
NA Not supported
OK Doesn't need instrumentation. Handled by lower level calls.
-n See note n
NA Not supported
-- Doesn't need instrumentation. Handled by lower level calls.
nn See note nn
NOTE 1: sleep() and usleep() are user-space functions in the C library and cannot
NOTE 01: sleep() and usleep() are user-space functions in the C library and cannot
serve as cancellation points. They are, however, simple wrappers around nanosleep
which is a true cancellation point.
NOTE 2: system() is actually implemented in apps/ as part of NSH. It cannot be
NOTE 02: system() is actually implemented in apps/ as part of NSH. It cannot be
a cancellation point either.
NOTE 3: sigpause() is a user-space function in the C library and cannot serve as
NOTE 03: sigpause() is a user-space function in the C library and cannot serve as
cancellation points. It is, however, a simple wrapper around sigsuspend()
which is a true cancellation point.
NOTE 4: aio_suspend() is a user-space function in the C library and cannot serve as
NOTE 04: aio_suspend() is a user-space function in the C library and cannot serve as
cancellation points. It does call around sigtimedwait() which is a true cancellation
point.
Status: Not really open. This is just the way it is.
@ -1530,7 +1530,7 @@ o Libraries (libc/, libm/)
Description: There are many things implemented within the kernel (for example
under sched/pthread) that probably should be migrated in the
C library where it belongs.
Status: Open
Status: Ope
Priority: Low
o File system / Generic drivers (fs/, drivers/)

View File

@ -61,30 +61,30 @@
* The aio_cancel() function attempts to cancel one or more asynchronous
* I/O requests currently outstanding against file descriptor 'fildes'.
* The aiocbp argument points to the asynchronous I/O control block for
* a particular request to be cancelled. If aiocbp is NULL, then all
* a particular request to be canceled. If aiocbp is NULL, then all
* outstanding cancelable asynchronous I/O requests against fildes will
* be cancelled.
* be canceled.
*
* Normal asynchronous notification will occur for asynchronous I/O
* operations that are successfully cancelled. If there are requests that
* cannot be cancelled, then the normal asynchronous completion process
* operations that are successfully canceled. If there are requests that
* cannot be canceled, then the normal asynchronous completion process
* will take place for those requests when they are completed.
*
* For requested operations that are successfully cancelled, the associated
* For requested operations that are successfully canceled, the associated
* error status will be set to ECANCELED and the return status will be -1.
* For requested operations that are not successfully cancelled, the aiocbp
* For requested operations that are not successfully canceled, the aiocbp
* will not be modified by aio_cancel().
*
* Input Parameters:
* fildes - Not used in this implementation
* aiocbp - Points to the asynchronous I/O control block for a particular
* request to be cancelled.
* request to be canceled.
*
* Returned Value:
* The aio_cancel() function will return the value AIO_CANCELED if the
* requested operation(s) were cancelled. The value AIO_NOTCANCELED will
* requested operation(s) were canceled. The value AIO_NOTCANCELED will
* be returned if at least one of the requested operation(s) cannot be
* cancelled because it is in progress. In this case, the state of the
* canceled because it is in progress. In this case, the state of the
* other operations, if any, referenced in the call to aio_cancel() is
* not indicated by the return value of aio_cancel(). The application
* may determine the state of affairs for these operations by using
@ -133,7 +133,7 @@ int aio_cancel(int fildes, FAR struct aiocb *aiocbp)
* possibilities:* (1) the work has already been started and
* is no longer queued, or (2) the work has not been started
* and is still in the work queue. Only the second case can
* be cancelled. work_cancel() will return -ENOENT in the
* be canceled. work_cancel() will return -ENOENT in the
* first case.
*/
@ -177,7 +177,7 @@ int aio_cancel(int fildes, FAR struct aiocb *aiocbp)
* possibilities:* (1) the work has already been started and
* is no longer queued, or (2) the work has not been started
* and is still in the work queue. Only the second case can
* be cancelled. work_cancel() will return -ENOENT in the
* be canceled. work_cancel() will return -ENOENT in the
* first case.
*/

View File

@ -226,7 +226,7 @@ static void aio_read_worker(FAR void *arg)
* aiocbp->aio_nbytes is an invalid value.
*
* In the case that the aio_read() successfully queues the I/O operation
* but the operation is subsequently cancelled or encounters an error, the
* but the operation is subsequently canceled or encounters an error, the
* return status of the asynchronous operation is one of the values
* normally returned by the read() function call. In addition, the error
* status of the asynchronous operation is set to one of the error
@ -235,7 +235,7 @@ static void aio_read_worker(FAR void *arg)
*
* EBADF - The aiocbp->aio_fildes argument is not a valid file descriptor
* open for reading.
* ECANCELED - The requested I/O was cancelled before the I/O completed
* ECANCELED - The requested I/O was canceled before the I/O completed
* due to an explicit aio_cancel() request.
* EINVAL - The file offset value implied by aiocbp->aio_offset would be
* invalid.

View File

@ -279,7 +279,7 @@ errout:
* aiocbp->aio_nbytes is an invalid value.
*
* In the case that the aio_write() successfully queues the I/O operation
* but the operation is subsequently cancelled or encounters an error, the
* but the operation is subsequently canceled or encounters an error, the
* return status of the asynchronous operation is one of the values
* normally returned by the write() function call. In addition, the error
* status of the asynchronous operation is set to one of the error
@ -290,7 +290,7 @@ errout:
* open for writing.
* EINVAL - The file offset value implied by aiocbp->aio_offset would be
* invalid.
* ECANCELED - The requested I/O was cancelled before the I/O completed
* ECANCELED - The requested I/O was canceled before the I/O completed
* due to an explicit aio_cancel() request.
*
* The following condition may be detected synchronously or asynchronously:

View File

@ -485,7 +485,7 @@ static int automount_interrupt(FAR const struct automount_lower_s *lower,
/* Queue work to occur after a delay. The delays performs debouncing:
* If the insertion/removal detection logic has "chatter", then we may
* receive this interrupt numerous times. Each time, the previous work
* will be cancelled (above) and the new work will scheduled with the
* will be canceled (above) and the new work will scheduled with the
* delay. So the final mount operation will not be performed until the
* insertion state is stable for that delay.
*/

View File

@ -107,7 +107,11 @@ int pthread_cond_wait(FAR pthread_cond_t *cond, FAR pthread_mutex_t *mutex)
ret |= pthread_takesemaphore((FAR sem_t *)&cond->sem);
sched_unlock();
/* Reacquire the mutex */
/* Reacquire the mutex.
*
* REVISIT: When cancellation points are enabled, we will almost
* certainly hold the mutex when the pthread is canceled.
*/
sinfo("Reacquire mutex...\n");
ret |= pthread_takesemaphore((FAR sem_t *)&mutex->sem);

View File

@ -75,7 +75,7 @@ int pthread_mutex_destroy(FAR pthread_mutex_t *mutex)
sinfo("mutex=0x%p\n", mutex);
if (!mutex)
if (mutex == NULL)
{
ret = EINVAL;
}
@ -100,7 +100,7 @@ int pthread_mutex_destroy(FAR pthread_mutex_t *mutex)
ret = kill(mutex->pid, 0);
if (ret < 0)
{
/* That thread associated with the PID no longer exists */
/* The thread associated with the PID no longer exists */
mutex->pid = -1;