diff --git a/components/pthread/pthread_cond_var.c b/components/pthread/pthread_cond_var.c index 03267a54c0..fc6f96e5aa 100644 --- a/components/pthread/pthread_cond_var.c +++ b/components/pthread/pthread_cond_var.c @@ -1,21 +1,8 @@ -// Copyright 2017 Espressif Systems (Shanghai) PTE LTD -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at - -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -// This is a simple implementation of pthread condition variables. In essence, -// the waiter creates its own semaphore to wait on and pushes it in the cond var -// specific list. Upon notify and broadcast, all the waiters for the given cond -// var are woken up. +/* + * SPDX-FileCopyrightText: 2017-2022 Espressif Systems (Shanghai) CO LTD + * + * SPDX-License-Identifier: Apache-2.0 + */ #include #include @@ -162,7 +149,11 @@ int pthread_cond_timedwait(pthread_cond_t *cv, pthread_mutex_t *mut, const struc } esp_pthread_cond_waiter_t w; - w.wait_sem = xSemaphoreCreateCounting(1, 0); /* First get will block */ + + // Around 80 bytes + StaticSemaphore_t sem_buffer; + // Create semaphore: first take will block + w.wait_sem = xSemaphoreCreateCountingStatic(1, 0, &sem_buffer); _lock_acquire_recursive(&cond->lock); TAILQ_INSERT_TAIL(&cond->waiter_list, &w, link); diff --git a/tools/ci/check_copyright_ignore.txt b/tools/ci/check_copyright_ignore.txt index 2e154f41d2..06a3c78985 100644 --- a/tools/ci/check_copyright_ignore.txt +++ b/tools/ci/check_copyright_ignore.txt @@ -777,7 +777,6 @@ components/nvs_flash/test_nvs_host/test_nvs_initialization.cpp components/nvs_flash/test_nvs_host/test_nvs_storage.cpp components/protocomm/include/transports/protocomm_console.h components/protocomm/include/transports/protocomm_httpd.h -components/pthread/pthread_cond_var.c components/pthread/test/test_cxx_cond_var.cpp components/pthread/test/test_cxx_std_future.cpp components/pthread/test/test_pthread.c