自旋锁

Melon中的自旋锁会根据不同编译器和不同CPU架构选用不同的实现。

本模块在MSVC环境中暂不支持。

头文件

#include "mln_utils.h"
#include "mln_types.h"

模块名

utils

函数/宏

如下函数中的lock_ptr均为mln_spin_t类型,该类型定义在mln_types.h中。

mln_spin_init

mln_spin_init(lock_ptr)

描述:初始化锁lock_ptr

返回值:成功返回0,否则返回非0

mln_spin_destroy

mln_spin_destroy(lock_ptr)

描述:销毁锁lock_ptr

返回值:成功返回0,否则返回非0

mln_spin_trylock

 mln_spin_trylock(lock_ptr)

描述:尝试锁定自旋锁。若锁资源被占用则会立即返回。

返回值:成功锁住则返回0,否则返回非0

mln_spin_lock

mln_spin_lock(lock_ptr)

描述:锁定锁资源。若锁资源被占用,则等待其可用并将其锁定。

返回值:无

mln_spin_unlock

mln_spin_unlock(lock_ptr)

描述:释放锁。

返回值:无

示例

这里仅展示使用,暂不考虑示例单线程合理性。

#include "mln_utils.h"
#include "mln_types.h"

int main(int argc, char *argv[])
{
    mln_spin_t lock;

    mln_spin_init(&lock);
    mln_spin_lock(&lock);
    mln_spin_unlock(&lock);
    mln_spin_destroy(&lock);
    return 0;
}

results matching ""

    No results matching ""