luaur-analyze-cli 0.1.0

Standalone Luau type-checker CLI (Rust).
Documentation
use crate::records::task_scheduler::{Task, TaskQueue};

/// `std::function<void()> pop()` (`CLI/src/Analyze.cpp:348-363`):
///
/// ```cpp
/// std::unique_lock guard(mtx);
/// cv.wait(guard, [this] { return !tasks.empty(); });
/// std::function<void()> task = tasks.front();
/// tasks.pop();
/// return task;
/// ```
pub fn task_scheduler_pop(tasks: &TaskQueue) -> Task {
    let mut guard = tasks.mtx.lock().unwrap();

    // cv.wait(guard, [] { return !tasks.empty(); });
    guard = tasks.cv.wait_while(guard, |q| q.is_empty()).unwrap();

    guard.pop_front().flatten()
}