Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fix #970, update documentation for read/write #972

Merged

Conversation

jphickey
Copy link
Contributor

Describe the contribution

Update the API documentation for OS_read/write/TimedRead/TimedWrite. Clarify that zero will be returned on EOF condition, and in the case of the timed API calls, the OS_ERR_TIMEOUT status code will be returned if the timeout expired without the handle becoming readable/writable during that time.

This is intended behavior such that it allows the caller to differentiate between a handle which is in a state where it cannot read/write any more data (e.g. at EOF, or a pipe/socket with remote end closed) and a handle which is simply idle or busy.

Fixes #970

Testing performed
Build and sanity check, run all tests

Expected behavior changes
None - documentation update only

System(s) tested on
Ubuntu 20.04

Contributor Info - All information REQUIRED for consideration of pull request
Joseph Hickey, Vantage Systems, Inc.

Update the API documentation for OS_read/write/TimedRead/TimedWrite.
Clarify that zero will be returned on EOF condition, and in the
case of the timed API calls, the OS_ERR_TIMEOUT status code will
be returned if the timeout expired without the handle becoming
readable/writable during that time.

This is intended to allow the caller to differentiate between a
handle which is in a state where it cannot read/write data (e.g.
at EOF, or a pipe/socket with remote end closed) and handle which
is simply idle or busy.
@jphickey jphickey added the CCB:Ready Pull request is ready for discussion at the Configuration Control Board (CCB) label Apr 27, 2021
@skliper skliper added CCB:FastTrack and removed CCB:Ready Pull request is ready for discussion at the Configuration Control Board (CCB) labels Apr 27, 2021
@skliper skliper added this to the 6.0.0 milestone Apr 27, 2021
@astrogeco astrogeco changed the base branch from main to integration-candidate April 28, 2021 12:41
@astrogeco astrogeco merged commit f9e879e into nasa:integration-candidate Apr 28, 2021
astrogeco added a commit to nasa/cFS that referenced this pull request Apr 28, 2021
nasa/osal#972, update documentation for read/write
nasa/osal#966, add "handler" feature to utassert stub API
nasa/osal#953, Adds local makefile and bundle/local unit test actions with coverage verification
nasa/osal#971, socket accept using incorrect record
astrogeco added a commit to nasa/cFS that referenced this pull request Apr 29, 2021
Combines:

nasa/cFE#1431
nasa/osal#975
nasa/sample_lib#61

Includes:

nasa/cFE#1379, memory pool pointer type
nasa/cFE#1289, ES child task functional test
nasa/cFE#1289, typo in macro name
nasa/cFE#1286, Remove broken BUILDDIR reference
nasa/cFE#1305, remove option for "osal_compatible"
nasa/cFE#1374, CFE_SUCCESS constant type
nasa/cFE#1316, Remove Unused Error Codes
nasa/cFE#1370, better warning about malformed startup line
nasa/cFE#1373, check status of call to `CFE_ES_CDS_CachePreload`
nasa/cFE#1384, update documentation for `CFE_ES_DeleteCDS`
nasa/cFE#1385, exception logic when app/task is not found
nasa/cFE#1372, error if alignment size not a power of two
nasa/cFE#1368, remove unneeded CFE_ES_SYSLOG_APPEND macro
nasa/cFE#1382, improve documentation for resourceID patterns
nasa/cFE#1371, assert `CFE_RESOURCEID_MAX` is a bitmask

nasa/osal#972, update documentation for read/write
nasa/osal#966, add "handler" feature to utassert stub API
nasa/osal#953, Adds local makefile and bundle/local unit test actions with coverage verification
nasa/osal#971, socket accept using incorrect record
nasa/osal#959, move async console option

nasa/sample_lib#60, replace direct ref to ArgPtr with macro
@jphickey jphickey deleted the fix-970-readwrite-docs branch April 29, 2021 13:14
This was referenced Apr 30, 2021
jphickey added a commit to jphickey/osal that referenced this pull request Aug 10, 2022
Significant reorganization of the CFE core directory
and header file structure.

All modules become separate subdirectories under fsw/modules.

Additionally, the interfaces to CFE core (public and internal)
are also separated into modules.

CMake "interface libraries" and related constructs are used to
manage the include paths to all the separate modules.
jphickey added a commit to jphickey/osal that referenced this pull request Aug 10, 2022
Updates the application developer guide to describe the directory
structure and file naming conventions
jphickey added a commit to jphickey/osal that referenced this pull request Aug 10, 2022
This updates the cppcheck static analysis rule to run via a script
which takes into account the new directory structure.

Oddly this reported new (valid) issues in FSW code which have also
been corrected.

Notably the wrapper script also contains a special provision to
run static analysis on TIME only with SERVER mode enabled.  The
default logic of cppcheck would run all combos and it is not valid
to have both of these defined.
jphickey added a commit to jphickey/osal that referenced this pull request Aug 10, 2022
jphickey added a commit to jphickey/osal that referenced this pull request Aug 10, 2022
The userguide build needs to include fsw/inc from all modules
jphickey added a commit to jphickey/osal that referenced this pull request Aug 10, 2022
Create a separate "core_internal.h" header file for prototypes
that were only intended for CFE core use.
jphickey pushed a commit to jphickey/osal that referenced this pull request Aug 10, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

return for a timeout is negative 4
3 participants