Я не нахожу никакой информации о том, когда использовать заголовок и как, в GitHub readme of Wabt (двоичный инструментарий Webassembly).
Я первоначально думал и пробовал способы скомпилировать файл C, содержащий Pthreads , используемые утилиты, в файл wasm , который я могу импортировать в файле JavaScript.
Я не знаю, будет ли Wabt полезно, поэтому я установил wasmtime , wabt и wasi-sdk все это. И теперь я запутался, что использовать. Кажется, я был установлен WASMTime CLI, но не API C. Заголовки , и не найдены. >
Когда и как использовать и wabt? Watm в файлах JS в браузерах и узле? Br /> My Header File с использованием pthreads-< /p>
/**
* SQL_MAP is an experimental custom data structure implemented by me.
* (currently for using in my personal projects)
* The name SQL_MAP comes from the inspiration from the power of foreign keys in a table can access primary key of some other table (power of RDBMS).
* Initially tried to do something similar.
*/
#ifndef SQL_MAP_H
#define SQL_MAP_H
#include
#if defined(__GNUC__)
#define USE_THREAD_SAFETY
#include
#else
#warning "Thread safety is disabled. Compile with gcc and pthreads to enable thread safety."
#endif
// -------------------------
// Structures and Typedefs
// -------------------------
typedef struct IndexNode {
char *key; // Interned key string
int *dataIndex; // Pointer to index in dataNodes array
struct IndexNode *next; // For chaining within buckets
} IndexNode;
typedef struct DataNode {
void *data;
} DataNode;
typedef struct SQLMap {
IndexNode **buckets; // Array of bucket pointers (chaining)
size_t bucketCount; // Number of buckets (capacity)
size_t entryCount; // Number of key-value entries
DataNode *dataNodes; // Dynamic array of data nodes
size_t dataCapacity; // Capacity of dataNodes
size_t dataCount; // Number of stored data nodes
#ifdef USE_THREAD_SAFETY
pthread_mutex_t mutex; // Mutex for thread safety
#endif
} SQLMap;
// -------------------------
// Function Prototypes
// -------------------------
// Create and initialize a new SQLMap instance.
SQLMap* sql_map_create(void);
// Insert or update a key-value pair in the SQLMap.
void sql_map_put(SQLMap *map, const char *key, void *value);
// Retrieve the value associated with the given key. Returns NULL if not found.
void* sql_map_get(SQLMap *map, const char *key);
// Remove a key-value pair from the SQLMap. Returns 1 if removed, 0 if not found.
int sql_map_remove(SQLMap *map, const char *key);
// Free all memory associated with the SQLMap.
// Note: The stored data (void*) is not freed; freeing it is the caller's responsibility.
void sql_map_free(SQLMap *map);
#endif // SQL_MAP_H
< /code>
Части моего C-кода с использованием pthreads-< /p>
static void lock_map(SQLMap *map) {
#ifdef USE_THREAD_SAFETY
pthread_mutex_lock(&map->mutex);
#endif
}
static void unlock_map(SQLMap *map) {
#ifdef USE_THREAD_SAFETY
pthread_mutex_unlock(&map->mutex);
#endif
}
SQLMap* sql_map_create(void) {
// some code
// some code
#ifdef USE_THREAD_SAFETY
if (pthread_mutex_init(&map->mutex, NULL) != 0) {
perror("Failed to initialize mutex");
exit(EXIT_FAILURE);
}
#endif
return map;
}
void sql_map_free(SQLMap *map) {
lock_map(map);
// Free each chain in the buckets.
for (size_t i = 0; i < map->bucketCount; i++) {
IndexNode *node = map->buckets;
while (node) {
IndexNode *temp = node;
node = node->next;
free(temp->dataIndex);
free(temp);
}
}
free(map->buckets);
free(map->dataNodes);
#ifdef USE_THREAD_SAFETY
pthread_mutex_destroy(&map->mutex);
#endif
unlock_map(map);
free(map);
// Optionally free the intern pool at program end.
free_intern_pool();
}
Подробнее здесь: https://stackoverflow.com/questions/794 ... -with-wabt
Каков использование случая, установленного в файле заголовка , установленного с Wabt? ⇐ Javascript
Форум по Javascript
1739793966
Anonymous
Я не нахожу никакой информации о том, когда использовать заголовок и как, в GitHub readme of Wabt (двоичный инструментарий Webassembly).
Я первоначально думал и пробовал способы скомпилировать файл C, содержащий Pthreads , используемые утилиты, в файл wasm , который я могу импортировать в файле JavaScript.
Я не знаю, будет ли Wabt полезно, поэтому я установил wasmtime , wabt и wasi-sdk все это. И теперь я запутался, что использовать. Кажется, я был установлен WASMTime CLI, но не API C. Заголовки , и не найдены. >
Когда и как использовать и wabt? Watm в файлах JS в браузерах и узле? Br /> My Header File с использованием pthreads-< /p>
/**
* SQL_MAP is an experimental custom data structure implemented by me.
* (currently for using in my personal projects)
* The name SQL_MAP comes from the inspiration from the power of foreign keys in a table can access primary key of some other table (power of RDBMS).
* Initially tried to do something similar.
*/
#ifndef SQL_MAP_H
#define SQL_MAP_H
#include
#if defined(__GNUC__)
#define USE_THREAD_SAFETY
#include
#else
#warning "Thread safety is disabled. Compile with gcc and pthreads to enable thread safety."
#endif
// -------------------------
// Structures and Typedefs
// -------------------------
typedef struct IndexNode {
char *key; // Interned key string
int *dataIndex; // Pointer to index in dataNodes array
struct IndexNode *next; // For chaining within buckets
} IndexNode;
typedef struct DataNode {
void *data;
} DataNode;
typedef struct SQLMap {
IndexNode **buckets; // Array of bucket pointers (chaining)
size_t bucketCount; // Number of buckets (capacity)
size_t entryCount; // Number of key-value entries
DataNode *dataNodes; // Dynamic array of data nodes
size_t dataCapacity; // Capacity of dataNodes
size_t dataCount; // Number of stored data nodes
#ifdef USE_THREAD_SAFETY
pthread_mutex_t mutex; // Mutex for thread safety
#endif
} SQLMap;
// -------------------------
// Function Prototypes
// -------------------------
// Create and initialize a new SQLMap instance.
SQLMap* sql_map_create(void);
// Insert or update a key-value pair in the SQLMap.
void sql_map_put(SQLMap *map, const char *key, void *value);
// Retrieve the value associated with the given key. Returns NULL if not found.
void* sql_map_get(SQLMap *map, const char *key);
// Remove a key-value pair from the SQLMap. Returns 1 if removed, 0 if not found.
int sql_map_remove(SQLMap *map, const char *key);
// Free all memory associated with the SQLMap.
// Note: The stored data (void*) is not freed; freeing it is the caller's responsibility.
void sql_map_free(SQLMap *map);
#endif // SQL_MAP_H
< /code>
Части моего C-кода с использованием pthreads-< /p>
static void lock_map(SQLMap *map) {
#ifdef USE_THREAD_SAFETY
pthread_mutex_lock(&map->mutex);
#endif
}
static void unlock_map(SQLMap *map) {
#ifdef USE_THREAD_SAFETY
pthread_mutex_unlock(&map->mutex);
#endif
}
SQLMap* sql_map_create(void) {
// some code
// some code
#ifdef USE_THREAD_SAFETY
if (pthread_mutex_init(&map->mutex, NULL) != 0) {
perror("Failed to initialize mutex");
exit(EXIT_FAILURE);
}
#endif
return map;
}
void sql_map_free(SQLMap *map) {
lock_map(map);
// Free each chain in the buckets.
for (size_t i = 0; i < map->bucketCount; i++) {
IndexNode *node = map->buckets[i];
while (node) {
IndexNode *temp = node;
node = node->next;
free(temp->dataIndex);
free(temp);
}
}
free(map->buckets);
free(map->dataNodes);
#ifdef USE_THREAD_SAFETY
pthread_mutex_destroy(&map->mutex);
#endif
unlock_map(map);
free(map);
// Optionally free the intern pool at program end.
free_intern_pool();
}
Подробнее здесь: [url]https://stackoverflow.com/questions/79445306/what-is-the-use-case-of-wasm-rt-h-header-file-installed-with-wabt[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия