Open
Conversation
macOS uses GCD for threading and semaphores. The clients were using semaphore.h or on macOS dispatch.h. This wraps both APIs to remove a bunch of code guards. 1. Add check to configure.ac for presence of dispatch.h. 2. API wrapper checks the header flag from configure to load either dispatch.h or semaphore.h. The check is also the guard for which wrapper to use. 3. Simplify all calls for semaphores into single function calls.
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 3 out of 3 changed files in this pull request and generated 5 comments.
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
You can also share your feedback on Copilot code review. Take the survey.
Comment on lines
+249
to
+257
| typedef struct { | ||
| dispatch_semaphore_t s; | ||
| } WOLFSSH_SEMAPHORE; | ||
|
|
||
| static inline | ||
| void wolfSSH_SEMAPHORE_Init(WOLFSSH_SEMAPHORE* s, unsigned int n) | ||
| { | ||
| s->s = dispatch_semaphore_create((long)n); | ||
| } |
Comment on lines
+281
to
+302
| typedef struct { | ||
| dispatch_semaphore_t s; | ||
| } WOLFSSH_SEMAPHORE; | ||
|
|
||
| static inline | ||
| void wolfSSH_SEMAPHORE_Init(WOLFSSH_SEMAPHORE* s, unsigned int n) | ||
| { | ||
| s->s = dispatch_semaphore_create((long)n); | ||
| } | ||
|
|
||
| static inline | ||
| void wolfSSH_SEMAPHORE_Release(WOLFSSH_SEMAPHORE* s) | ||
| { | ||
| dispatch_release(s->s); | ||
| } | ||
|
|
||
| static inline | ||
| void wolfSSH_SEMAPHORE_Wait(WOLFSSH_SEMAPHORE* s) | ||
| { | ||
| dispatch_semaphore_wait(s->s, DISPATCH_TIME_FOREVER); | ||
| } | ||
|
|
Comment on lines
+291
to
+295
| static inline | ||
| void wolfSSH_SEMAPHORE_Release(WOLFSSH_SEMAPHORE* s) | ||
| { | ||
| dispatch_release(s->s); | ||
| } |
Comment on lines
+297
to
+301
| static inline | ||
| void wolfSSH_SEMAPHORE_Wait(WOLFSSH_SEMAPHORE* s) | ||
| { | ||
| sem_wait(&s->s); | ||
| } |
Comment on lines
345
to
350
| /* capture window change signals */ | ||
| static void WindowChangeSignal(int sig) | ||
| { | ||
| #if (defined(__OSX__) || defined(__APPLE__)) | ||
| dispatch_semaphore_signal(windowSem); | ||
| #else | ||
| sem_post(&windowSem); | ||
| #endif | ||
| wolfSSH_SEMAPHORE_Post(&windowSem); | ||
| (void)sig; | ||
| } |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
macOS uses GCD for threading and semaphores. The clients were using semaphore.h or on macOS dispatch.h. This wraps both APIs to remove a bunch of code guards.
Resolves issue #893.