Adjusted some locks

This commit is contained in:
Xavi Ramirez 2017-08-06 03:46:58 +00:00
parent c814742afa
commit b19c9297d8

View file

@ -188,9 +188,6 @@ func (kclp *KCLProcess) performAction(a interface{}) (string, error) {
} }
func (kclp *KCLProcess) handleLine(line string) error { func (kclp *KCLProcess) handleLine(line string) error {
kclp.readmux.Lock()
defer kclp.readmux.Unlock()
action, err := kclp.ioHandler.loadAction(line) action, err := kclp.ioHandler.loadAction(line)
if err != nil { if err != nil {
return err return err
@ -204,9 +201,12 @@ func (kclp *KCLProcess) handleLine(line string) error {
} }
func (kclp *KCLProcess) Checkpoint(pair SequencePair, retryCount int) error { func (kclp *KCLProcess) Checkpoint(pair SequencePair, retryCount int) error {
kclp.ckpmux.Lock()
defer kclp.ckpmux.Unlock()
sleepDuration := 5 * time.Second sleepDuration := 5 * time.Second
for n := 0; n <= retryCount; n++ { for n := 0; n <= retryCount; n++ {
fmt.Printf("Trying to checkpoint %d\n", n)
err := kclp.processCheckpoint(pair) err := kclp.processCheckpoint(pair)
if err == nil { if err == nil {
return nil return nil
@ -240,8 +240,8 @@ func (kclp *KCLProcess) Shutdown() {
} }
func (kclp *KCLProcess) processCheckpoint(pair SequencePair) error { func (kclp *KCLProcess) processCheckpoint(pair SequencePair) error {
kclp.ckpmux.Lock() kclp.readmux.Lock()
defer kclp.ckpmux.Unlock() defer kclp.readmux.Unlock()
var seq *string var seq *string
var subSeq *int var subSeq *int
@ -270,11 +270,13 @@ func (kclp *KCLProcess) processCheckpoint(pair SequencePair) error {
if action.Error != nil && *action.Error != "" { if action.Error != nil && *action.Error != "" {
return CheckpointError{e: *action.Error} return CheckpointError{e: *action.Error}
} }
fmt.Println("Successful checkpoint")
return nil return nil
} }
func (kclp *KCLProcess) Run() { func (kclp *KCLProcess) Run() {
for { for {
kclp.readmux.Lock()
line, err := kclp.ioHandler.readLine() line, err := kclp.ioHandler.readLine()
if err == io.EOF { if err == io.EOF {
kclp.ioHandler.writeError("IO stream closed") kclp.ioHandler.writeError("IO stream closed")
@ -292,5 +294,6 @@ func (kclp *KCLProcess) Run() {
kclp.ioHandler.writeError(fmt.Sprintf("ERR Handle line: %+#v", err)) kclp.ioHandler.writeError(fmt.Sprintf("ERR Handle line: %+#v", err))
return return
} }
kclp.readmux.Unlock()
} }
} }