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

Allow VFS components to work with concurrent select calls from several tasks. (IDFGH-1072) #3392

Closed
skandalfo opened this issue Apr 30, 2019 · 2 comments

Comments

@skandalfo
Copy link

skandalfo commented Apr 30, 2019

Environment

  • Development Kit: ESP32-DevKitC
  • Kit version (for WroverKit/PicoKit/DevKitC): v1
  • Module or chip used: ESP32-WROOM-32
  • IDF version (run git describe --tags to find it):
    // v4.0-dev-447-g689032650
  • Build System: Make
  • Compiler version (run xtensa-esp32-elf-gcc --version to find it):
    // xtensa-esp32-elf-gcc (crosstool-NG esp32-2019r1-rc2) 8.2.0
  • Operating System: Linux
  • Power Supply: USB

Problem Description

I'm currently using "simulated pipes" by connecting together two datagram sockets with ephemeral ports.

I'd like to implement my own VFS module to support signaling (set/clear flag) fds. Unfortunately the current interface involving start_select/end_select doesn't allow for it because end_select doesn't provide back any context pointer for the select call that just finished..

Expected Behavior

start_select / end_select calls should be linked together with some pointer or ID for the current select operation, so that simultaneous select operations can be signalled for relevant events.

Actual Behavior

A single select call can be supported at a given time by each VFS module (eg, one task can't be doing select() on uart receive while another does select() on uart send). The example uart VFS module just returns ESP_ERR_INVALID_STATE in start_select() when a previous start_select() was already ongoing.

EDIT: Completed Expected/Actual Behavior.

@github-actions github-actions bot changed the title Allow VFS components to work with concurrent select calls from several tasks. Allow VFS components to work with concurrent select calls from several tasks. (IDFGH-1072) Apr 30, 2019
@dobairoland
Copy link
Collaborator

Hi @skandalfo! Thank you for pointing out this problem and sorry for the long silence regarding this. The fix is under internal review and got delayed. It will be published as soon as possible.

@skandalfo
Copy link
Author

Hi, @dobairoland, thanks for letting me know :-)

My plans were use select-enable synchronization primitives to properly port cpp-async-rpc without having to use lots of sockets.

@igrr igrr closed this as completed in 91ce5db Aug 21, 2019
igrr pushed a commit that referenced this issue Sep 5, 2019
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants