# Copyright 2017 Alexander Karzhenkov
# Distributed under the Boost Software License, Version 1.0.
# (See accompanying file LICENSE_1_0.txt or copy at
# http://www.boost.org/LICENSE_1_0.txt)

# TODO: Documentation.

import property-set ;
import feature : feature ;
import toolset ;
import features/os-feature ;

feature threadapi : pthread win32 : symmetric propagated ;
toolset.add-defaults <target-os>windows:<threadapi>win32 ;

rule get-default ( property-set )
{
    local api = pthread ;
    if [ $(property-set).get <target-os> ] = windows { api = win32 ; }
    return $(api) ;
}

# Obsolete rule that didn't quite work.  Remove this
# after all references to it have been cleaned up.
rule detect ( properties * )
{
    # local ps = [ property-set.create $(properties) ] ;
    # local api = [ $(ps).get <threadapi> ] ;
    # if ! $(api) { api = [ get-default $(ps) ] ; }
    # return <threadapi>$(api) <relevant>threadapi:<relevant>target-os ;
}
