Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/moses-smt/vowpal_wabbit.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJohn Langford <jl@hunch.net>2013-05-14 01:04:13 +0400
committerJohn Langford <jl@hunch.net>2013-05-14 01:04:13 +0400
commit89e3e06f330478884358e58f7bfc57c6d858f18b (patch)
tree82f2820b4ce4ef2b119e32c7f90990cd07251b94 /vowpalwabbit/sender.cc
parente9061f19fe9d0d1567b22408ba68b9fe21433cf8 (diff)
fix blocking send issue
Diffstat (limited to 'vowpalwabbit/sender.cc')
-rw-r--r--vowpalwabbit/sender.cc16
1 files changed, 12 insertions, 4 deletions
diff --git a/vowpalwabbit/sender.cc b/vowpalwabbit/sender.cc
index 996668dc..8b91c33f 100644
--- a/vowpalwabbit/sender.cc
+++ b/vowpalwabbit/sender.cc
@@ -27,7 +27,7 @@ using namespace std;
namespace SENDER {
struct sender {
io_buf* buf;
-
+ learner base;
int sd;
};
@@ -81,8 +81,9 @@ namespace SENDER {
return_simple_example(*all, ec);
}
- else if ((ec = VW::get_example(all->p)) != NULL)//semiblocking operation.
+ else if ((ec = VW::get_example(all->p)) != NULL && !command_example(all,ec))//semiblocking operation.
{
+
label_data* ld = (label_data*)ec->ld;
all->set_minmax(all->sd, ld->label);
simple_label.cache_label(ld, *s->buf);//send label information.
@@ -107,8 +108,14 @@ namespace SENDER {
}
return;
}
- void learn(void* d, example*ec) { cout << "sender can't be used under reduction" << endl; }
- void finish(void* d) { cout << "sender can't be used under reduction" << endl; }
+ void learn(void* d, example*ec) { cout << "sender learn can not be used under reduction" << endl; }
+ void finish(void* d)
+ {
+ sender* s = (sender*)d;
+ delete s->buf;
+ s->base.finish();
+ free(s);
+ }
learner setup(vw& all, po::variables_map& vm, vector<string> pairs)
{
@@ -120,6 +127,7 @@ namespace SENDER {
open_sockets(*s, hosts[0]);
}
+ s->base = all.l;
sl_t sl = {NULL, save_load};
learner l(s,drive_send,learn,finish,sl);
return l;