feat: added thread-safety
This commit is contained in:
1 parent
a22ec17aa1
commit
d572e79a5b
6 files changed
+62
-32
No files matched your search
+9
-8
@@ -30,7 +30,7 @@
|
||||
4. **Максимальная емкость**: До 65 535 элементов (ограничение 16-битного индекса)
|
||||
5. **Оптимизировано под ESP-IDF**: Использует функции heap_caps для выделения памяти с параметрами памяти
|
||||
6. **Обработка ошибок**: Комплексная проверка ошибок с детальным логированием
|
||||
7. **Потокобезопасность**: Не является потокобезопасным по умолчанию (можно сделать потокобезопасным с внешним мьютексом)
|
||||
7. **Потокобезопасность**: Является потокобезопасным (использует FreeRTOS mutex)
|
||||
8. **Минимальные накладные расходы**: Низкие накладные расходы на память и процессор
|
||||
|
||||
---
|
||||
@@ -66,11 +66,12 @@ git clone https://github.com/aZholtikov/zh_vector
|
||||
```c
|
||||
typedef struct
|
||||
{
|
||||
void **items; // Массив указателей на элементы вектора
|
||||
uint16_t capacity; // Максимальная емкость вектора
|
||||
uint16_t size; // Количество элементов в векторе
|
||||
uint16_t unit; // Размер элемента вектора (в байтах)
|
||||
bool is_initialized; // Флаг состояния инициализации вектора
|
||||
void **items; // Массив указателей на элементы вектора
|
||||
uint16_t capacity; // Максимальная емкость вектора
|
||||
uint16_t size; // Количество элементов в векторе
|
||||
uint16_t unit; // Размер элемента вектора (в байтах)
|
||||
bool is_initialized; // Флаг состояния инициализации вектора
|
||||
SemaphoreHandle_t mutex; // FreeRTOS mutex для потокобезопасности
|
||||
} zh_vector_t;
|
||||
```
|
||||
|
||||
@@ -337,7 +338,7 @@ void app_main(void)
|
||||
| **Тип индекса** | uint16_t (16-бит) |
|
||||
| **Управление памятью** | heap_caps_calloc, heap_caps_realloc, heap_caps_free |
|
||||
| **Параметры памяти** | MALLOC_CAP_8BIT |
|
||||
| **Потокобезопасность** | Не является потокобезопасным |
|
||||
| **Потокобезопасность** | Является потокобезопасным (использует FreeRTOS mutex) |
|
||||
| **Версия ESP-IDF** | >= 5.0 |
|
||||
| **Платформа** | Серия ESP32 |
|
||||
| **Язык** | C (C99) |
|
||||
@@ -404,4 +405,4 @@ void app_main(void)
|
||||
|
||||
---
|
||||
|
||||
*Сгенерировано для zh_vector v1.2.0*
|
||||
*Сгенерировано для zh_vector v1.3.0*
|
||||
Reference in new issue
Block a user