As always after posting, I found a solution which works:
// worker.js
var wp = google.gears.workerPool;
wp.onmessage = function(messageText, senderId, message)
{
if (messageText == "init") {
init(senderId);
}
}
function init(parentId)
{
var i = 0;
var x = 100000000;
for (i = 0, percent = 0; i < x; ++i) {
if (i % (x / 100) == 0) {
wp.sendMessage(percent + "%", parentId);
++percent;
}
}
wp.sendMessage("complete", parentId);
}
// main.js:
// [..]
workerPool.sendMessage("init", childWorkerId);
// [..]