Skip to content
GitLab
Menu
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
tianlh
LightGBM-DCU
Commits
6e0b58ba
Commit
6e0b58ba
authored
Nov 26, 2016
by
Guolin Ke
Browse files
thread-safe for set field of dataset
parent
962b7eb0
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
8 additions
and
1 deletion
+8
-1
include/LightGBM/dataset.h
include/LightGBM/dataset.h
+3
-0
src/c_api.cpp
src/c_api.cpp
+0
-1
src/io/metadata.cpp
src/io/metadata.cpp
+5
-0
No files found.
include/LightGBM/dataset.h
View file @
6e0b58ba
...
...
@@ -13,6 +13,7 @@
#include <functional>
#include <string>
#include <unordered_set>
#include <mutex>
namespace
LightGBM
{
...
...
@@ -234,6 +235,8 @@ private:
std
::
vector
<
float
>
init_score_
;
/*! \brief Queries data */
std
::
vector
<
data_size_t
>
queries_
;
/*! \brief mutex for threading safe call */
std
::
mutex
mutex_
;
};
...
...
src/c_api.cpp
View file @
6e0b58ba
...
...
@@ -30,7 +30,6 @@ public:
Booster
(
const
Dataset
*
train_data
,
const
char
*
parameters
)
{
std
::
lock_guard
<
std
::
mutex
>
lock
(
mutex_
);
auto
param
=
ConfigBase
::
Str2Map
(
parameters
);
config_
.
Set
(
param
);
// create boosting
...
...
src/io/metadata.cpp
View file @
6e0b58ba
...
...
@@ -196,6 +196,7 @@ void Metadata::CheckOrPartition(data_size_t num_all_data, const std::vector<data
void
Metadata
::
SetInitScore
(
const
float
*
init_score
,
data_size_t
len
)
{
std
::
lock_guard
<
std
::
mutex
>
lock
(
mutex_
);
// save to nullptr
if
(
init_score
==
nullptr
||
len
==
0
)
{
init_score_
.
clear
();
...
...
@@ -214,6 +215,7 @@ void Metadata::SetInitScore(const float* init_score, data_size_t len) {
}
void
Metadata
::
SetLabel
(
const
float
*
label
,
data_size_t
len
)
{
std
::
lock_guard
<
std
::
mutex
>
lock
(
mutex_
);
if
(
label
==
nullptr
)
{
Log
::
Fatal
(
"label cannot be nullptr"
);
}
...
...
@@ -228,6 +230,7 @@ void Metadata::SetLabel(const float* label, data_size_t len) {
}
void
Metadata
::
SetWeights
(
const
float
*
weights
,
data_size_t
len
)
{
std
::
lock_guard
<
std
::
mutex
>
lock
(
mutex_
);
// save to nullptr
if
(
weights
==
nullptr
||
len
==
0
)
{
weights_
.
clear
();
...
...
@@ -247,6 +250,7 @@ void Metadata::SetWeights(const float* weights, data_size_t len) {
}
void
Metadata
::
SetQueryBoundaries
(
const
data_size_t
*
query_boundaries
,
data_size_t
len
)
{
std
::
lock_guard
<
std
::
mutex
>
lock
(
mutex_
);
// save to nullptr
if
(
query_boundaries
==
nullptr
||
len
==
0
)
{
query_boundaries_
.
clear
();
...
...
@@ -270,6 +274,7 @@ void Metadata::SetQueryBoundaries(const data_size_t* query_boundaries, data_size
}
void
Metadata
::
SetQueryId
(
const
data_size_t
*
query_id
,
data_size_t
len
)
{
std
::
lock_guard
<
std
::
mutex
>
lock
(
mutex_
);
// save to nullptr
if
(
query_id
==
nullptr
||
len
==
0
)
{
query_boundaries_
.
clear
();
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment