Adjusted some locks
This commit is contained in:
parent
c814742afa
commit
b19c9297d8
1 changed files with 8 additions and 5 deletions
13
kcl/kcl.go
13
kcl/kcl.go
|
|
@ -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()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue