No description
Find a file
Jukka Rissanen 1184089d54 net: sockets: Add locking to receive callback
Fix a regression when application is waiting data but does
not notice that because socket layer is not woken up.

This could happen because application was waiting condition
variable but the signal to wake the condvar came before the
wait started. Normally if there is constant flow of incoming
data to the socket, the signal would be given later. But if
the peer is waiting that Zephyr replies, there might be a
timeout at peer.

The solution is to add locking in socket receive callback so
that we only signal the condition variable after we have made
sure that the condition variable is actually waiting the data.

Fixes #34964

Signed-off-by: Jukka Rissanen <jukka.rissanen@linux.intel.com>
2021-05-24 23:30:18 -04:00
.buildkite ci: Reduce number of workers back to 20 2021-05-10 05:27:27 -05:00
.github actions: clang: invoke twister with -M to keep size down 2021-05-19 10:43:43 -05:00
arch arm64: mitigate FPU-in-exception usage side effects 2021-05-21 04:52:44 -05:00
boards boards: add USB node aliases 2021-05-21 18:16:25 -04:00
cmake cmake: extensions.cmake: use blocklist instead in comment 2021-05-24 23:16:28 -04:00
doc doc: kernel: add documentation for queues 2021-05-24 14:20:01 -04:00
drivers drivers: change suffix ull to ULL 2021-05-21 18:13:01 -04:00
dts dts: add 'linaro,' prefix to 96b-lscon-1v8, 96b-lscon-3v3 2021-05-19 22:18:25 -05:00
include logging: remove dead code enum 2021-05-21 18:09:23 -04:00
kernel userspace: remove dead code 2021-05-24 22:35:03 -04:00
lib k_heap: Clamp to a minimum heap size 2021-05-20 17:52:21 -04:00
misc toolchain: add GEN_ABSOLUTE_SYM_KCONFIG() 2021-02-02 09:23:45 -05:00
modules logging: Enable SWO support for nRF SOCs 2021-05-18 12:28:25 -05:00
samples samples: tensorflow: remove requirements.txt from magic wand sample 2021-05-24 14:18:08 -04:00
scripts scripts: runners: bossac: Add legacy mode 2021-05-21 21:20:58 +02:00
share cmake: using MD5_INFILE variable instead of ZephyrPackagePath.txt 2021-02-23 19:34:27 +01:00
soc boards: arc: explicitly set link lib for hs boards with mwdt 2021-05-21 04:59:37 -05:00
subsys net: sockets: Add locking to receive callback 2021-05-24 23:30:18 -04:00
tests tests: test_build: Exclude lpcxpresso55s69_ns from debug builds 2021-05-21 20:12:23 -05:00
.checkpatch.conf checkpatch: ignore linux specific ENOSYS warning 2021-03-30 10:50:14 -05:00
.clang-format clang-format: Change lines length limit from 80 to 100 2021-05-06 08:13:32 -05:00
.codecov.yml ci: add .codecov.yml for codecov.io configuration 2018-01-03 13:12:03 -05:00
.editorconfig editorconfig: indent Kconfig files with tabs 2020-07-08 21:30:38 -04:00
.gitattributes gitattributes: Tell linguist to ignore test pattern files 2020-04-23 14:07:57 -04:00
.gitignore gitignore: add common Python venv directories 2021-04-20 11:30:40 -05:00
.gitlint gitlint: match max title length restriction with checkpatch 2019-05-29 14:43:16 -04:00
.mailmap mailmap: add entry for Sean Nyekjaer 2019-11-04 14:33:31 +01:00
.uncrustify.cfg uncrustify: Add a rule to remove space inside function argument 2018-10-16 09:50:03 -04:00
CMakeLists.txt cmake: rework empty zephyr libraries handling. 2021-05-06 18:06:32 +02:00
CODE_OF_CONDUCT.md coc: move to markdown format 2019-01-24 15:37:15 -05:00
CODEOWNERS boards: arm: Modify BMD-345-EVAL support 2021-05-18 11:26:31 -05:00
CONTRIBUTING.rst doc: Fixed a link in CONTRIBUTING.rst 2019-02-28 12:46:04 -08:00
Kconfig kconfig: Clean up header comments and make them consistent 2019-11-04 17:31:27 -05:00
Kconfig.zephyr Kconfig.zephyr: fix MISRA_SANE location 2021-05-21 18:11:26 -04:00
LICENSE add top level Apache 2.0 license file 2016-02-05 20:24:37 -05:00
MAINTAINERS.yml ITE MAINTAINERS: add section for ITE 2021-05-17 09:14:33 -04:00
README.rst doc: remove references to shippable 2021-03-04 07:14:11 -06:00
VERSION release: Zephyr 2.6.0-rc1 2021-05-09 19:09:41 -05:00
version.h.in cmake: explain BUILD_VERSION and KERNEL_VERSION_* 2019-05-09 11:52:05 +02:00
west.yml sof: do not get mainmenu from SOF project 2021-05-24 13:06:59 -05:00
zephyr-env.cmd scripts: remove west from scripts/ 2019-01-29 10:15:01 +01:00
zephyr-env.sh zephyr_env.sh: Remove semicolons at ends of lines 2019-12-10 14:34:46 -08:00

.. raw:: html

   <a href="https://www.zephyrproject.org">
     <p align="center">
       <img src="doc/images/Zephyr-Project.png">
     </p>
   </a>

   <a href="https://bestpractices.coreinfrastructure.org/projects/74"><img
   src="https://bestpractices.coreinfrastructure.org/projects/74/badge"></a>
   <a href="https://buildkite.com/zephyr/zephyr">
   <img
   src="https://badge.buildkite.com/f5bd0dc88306cee17c9b38e78d11bb74a6291e3f40e7d13f31.svg?branch=master"></a>


The Zephyr Project is a scalable real-time operating system (RTOS) supporting
multiple hardware architectures, optimized for resource constrained devices,
and built with security in mind.

The Zephyr OS is based on a small-footprint kernel designed for use on
resource-constrained systems: from simple embedded environmental sensors and
LED wearables to sophisticated smart watches and IoT wireless gateways.

The Zephyr kernel supports multiple architectures, including ARM Cortex-M,
Intel x86, ARC, Nios II, Tensilica Xtensa, and RISC-V, and a large number of
`supported boards`_.

.. below included in doc/introduction/introduction.rst

.. start_include_here

Getting Started
***************

Welcome to Zephyr! See the `Introduction to Zephyr`_ for a high-level overview,
and the documentation's `Getting Started Guide`_ to start developing.

Community Support
*****************

Community support is provided via mailing lists and Slack; see the Resources
below for details.

.. _project-resources:

Resources
*********

Here's a quick summary of resources to help you find your way around:

* **Help**: `Asking for Help Tips`_
* **Documentation**: http://docs.zephyrproject.org (`Getting Started Guide`_)
* **Source Code**: https://github.com/zephyrproject-rtos/zephyr is the main
  repository; https://elixir.bootlin.com/zephyr/latest/source contains a
  searchable index
* **Releases**: https://github.com/zephyrproject-rtos/zephyr/releases
* **Samples and example code**: see `Sample and Demo Code Examples`_
* **Mailing Lists**: users@lists.zephyrproject.org and
  devel@lists.zephyrproject.org are the main user and developer mailing lists,
  respectively. You can join the developer's list and search its archives at
  `Zephyr Development mailing list`_. The other `Zephyr mailing list
  subgroups`_ have their own archives and sign-up pages.
* **Nightly CI Build Status**: https://lists.zephyrproject.org/g/builds
  The builds@lists.zephyrproject.org mailing list archives the CI
  (buildkite) nightly build results.
* **Chat**: Zephyr's Slack workspace is https://zephyrproject.slack.com.  Use
  this `Slack Invite`_ to register.
* **Contributing**: see the `Contribution Guide`_
* **Wiki**: `Zephyr GitHub wiki`_
* **Issues**: https://github.com/zephyrproject-rtos/zephyr/issues
* **Security Issues**: Email vulnerabilities@zephyrproject.org to report
  security issues; also see our `Security`_ documentation. Security issues are
  tracked separately at https://zephyrprojectsec.atlassian.net.
* **Zephyr Project Website**: https://zephyrproject.org

.. _Slack Invite: https://tinyurl.com/y5glwylp
.. _supported boards: http://docs.zephyrproject.org/latest/boards/index.html
.. _Zephyr Documentation: http://docs.zephyrproject.org
.. _Introduction to Zephyr: http://docs.zephyrproject.org/latest/introduction/index.html
.. _Getting Started Guide: http://docs.zephyrproject.org/latest/getting_started/index.html
.. _Contribution Guide: http://docs.zephyrproject.org/latest/contribute/index.html
.. _Zephyr GitHub wiki: https://github.com/zephyrproject-rtos/zephyr/wiki
.. _Zephyr Development mailing list: https://lists.zephyrproject.org/g/devel
.. _Zephyr mailing list subgroups: https://lists.zephyrproject.org/g/main/subgroups
.. _Sample and Demo Code Examples: http://docs.zephyrproject.org/latest/samples/index.html
.. _Security: http://docs.zephyrproject.org/latest/security/index.html
.. _Asking for Help Tips: https://docs.zephyrproject.org/latest/guides/getting-help.html