This commit is contained in:
holger krekel
2019-07-18 14:35:54 +02:00
parent 8f240f7153
commit 7a4808ba0d
2 changed files with 45 additions and 46 deletions

View File

@@ -1962,19 +1962,15 @@ pub unsafe fn dc_forward_msgs(
curr_timestamp = dc_create_smeared_timestamps(context, msg_cnt); curr_timestamp = dc_create_smeared_timestamps(context, msg_cnt);
idsstr = dc_arr_to_string(msg_ids, msg_cnt); idsstr = dc_arr_to_string(msg_ids, msg_cnt);
let ids = context let ids = context.sql.query_map(
.sql format!(
.query_map( "SELECT id FROM msgs WHERE id IN({}) ORDER BY timestamp,id",
format!( as_str(idsstr)
"SELECT id FROM msgs WHERE id IN({}) ORDER BY timestamp,id", ),
as_str(idsstr) params![],
), |row| row.get::<_, i32>(0),
params![], |ids| ids.collect::<Result<Vec<_>, _>>().map_err(Into::into),
|row| row.get::<_, i32>(0), );
|ids| {
ids.collect::<Result<Vec<_>, _>>().map_err(Into::into)
}
);
for id in ids.unwrap() { for id in ids.unwrap() {
let src_msg_id = id; let src_msg_id = id;

View File

@@ -81,41 +81,44 @@ unsafe fn dc_job_perform(context: &Context, thread: libc::c_int, probe_network:
}; };
info!(context, 0, "dc_job_perform before query"); info!(context, 0, "dc_job_perform before query");
let jobs: Result<Vec<dc_job_t>,_> = context let jobs: Result<Vec<dc_job_t>, _> = context.sql.query_map(
.sql query,
.query_map( params,
query, |row| {
params, info!(context, 0, "START jobs query_maps");
|row| { let job = dc_job_t {
info!(context, 0, "START jobs query_maps"); job_id: row.get(0)?,
let job = dc_job_t { action: row.get(1)?,
job_id: row.get(0)?, foreign_id: row.get(2)?,
action: row.get(1)?, desired_timestamp: row.get(5)?,
foreign_id: row.get(2)?, added_timestamp: row.get(4)?,
desired_timestamp: row.get(5)?, tries: row.get(6)?,
added_timestamp: row.get(4)?, param: dc_param_new(),
tries: row.get(6)?, try_again: 0,
param: dc_param_new(), pending_error: 0 as *mut libc::c_char,
try_again: 0, };
pending_error: 0 as *mut libc::c_char,
};
let packed: String = row.get(3)?; let packed: String = row.get(3)?;
dc_param_set_packed(job.param, to_cstring(packed).as_ptr()); dc_param_set_packed(job.param, to_cstring(packed).as_ptr());
info!(context, 0, "DONE jobs query_maps row"); info!(context, 0, "DONE jobs query_maps row");
Ok(job) Ok(job)
}, },
|jobs| { |jobs| {
info!(context, 0, "collecting jobs"); info!(context, 0, "collecting jobs");
let res = jobs.collect::<Result<Vec<dc_job_t>, _>>() let res = jobs
.map_err(Into::into); .collect::<Result<Vec<dc_job_t>, _>>()
info!(context, 0, "collecting jobs done"); .map_err(Into::into);
res info!(context, 0, "collecting jobs done");
}, res
); },
);
match jobs { match jobs {
Ok(ref res) => {info!(context, 0, "query done, {:?}", res.len()); }, Ok(ref res) => {
Err(ref err) => {info!(context, 0, "query failed: {:?}", err); } info!(context, 0, "query done, {:?}", res.len());
}
Err(ref err) => {
info!(context, 0, "query failed: {:?}", err);
}
} }
for mut job in jobs.unwrap_or_default() { for mut job in jobs.unwrap_or_default() {
info!( info!(